2015-10-16 31 views
6

Co zrobić, aby uzyskać niestandardowy wskaźnik, który używałby obiektu do rysowania z niestandardową animacją dla modelu SwipeRefreshLayout?Utwórz niestandardowy wskaźnik SwipeRefreshLayout?

Sprawdziłem kod źródłowy dla SwipeRefreshLayout i zauważyłem, że obiekt CircleImageView był prywatny.

Czy mimo to należy zmodyfikować ImageView?

Odpowiedz

20

Możesz zmienić losowanie za pomocą odbicia, nie wiesz, jak dobry jest ten pomysł. Coś jak:

mSwipeRefreshLayout = (SwipeRefreshLayout)findViewById(R.id.your_swiperefresh_id); 
try { 
    Field f = mSwipeRefreshLayout.getClass().getDeclaredField("mCircleView"); 
    f.setAccessible(true); 
    ImageView img = (ImageView)f.get(mSwipeRefreshLayout); 
    img.setImageResource(R.drawable.your_drawable_file); 
} catch (NoSuchFieldException e) { 
    e.printStackTrace(); 
} catch (IllegalAccessException e) { 
    e.printStackTrace(); 
} 
+0

Zastanawiam się, jak wpłynie to na obiekt MaterialProgressDrawable – AndyRoid

+0

, to zmieni tylko możliwość rysowania. – abhishesh

+0

Chciałbym umieścić niestandardowy ciąg, ale jestem zaniepokojony CircleImageView. Zobacz link: https://github.com/android/platform_frameworks_support/blob/master/v4/java/android/support/v4/widget/CircleImageView.java testowanie go teraz – AndyRoid