Czy można maskować widoki? Na przykład, jeśli mam projekt, który wymaga, aby widok listy był widoczny w otworze o owalnym kształcie. Czy istnieje sposób na utworzenie maski dla widoku? Czy to się nazywa coś innego? Ponieważ wszystkie odniesienia do maskowania w dokumentach Androida mówią o maskowaniu płótna lub rysowania. Ale nie wydaje mi się, aby tworzenie interaktywnego obiektu, takiego jak widok listy, było dobrym podejściem. Czy na razie jest to tylko ograniczenie?Czy można ukryć widok w systemie Android?
15
A
Odpowiedz
30
Tak, to jest - trzeba zastąpić metodę rysowania widoku - tj:
......
final Path path = new Path();
path.addRoundRect(new RectF(0,0,getWidth(),getHeight()),10,10,Direction.CW);
......
@Override
protected void dispatchDraw(Canvas canvas){
canvas.clipPath(path);
super.dispatchDraw(canvas);
}
to wyciągnie swój pogląd tylko w granicach określonych przez ścieżkę.
10
Tak, można nawet zamaskować pełne układy. Shameless selfplug
<com.christophesmet.android.views.maskableframelayout.MaskableFrameLayout
android:id="@+id/frm_mask_animated"
android:layout_width="100dp"
app:porterduffxfermode="DST_IN"
app:mask="@drawable/animation_mask"
android:layout_height="100dp">
<ImageView android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/unicorn"/>
Można go znaleźć here
Powiązane problemy
- 1. Jak ukryć pasek postępu w systemie Android?
- 2. Jak zamienić widok programowo w systemie Android?
- 3. jak wyczyścić widok w systemie Android?
- 4. Jak dodać widok nakładki na inny widok w systemie Android?
- 5. Jak uzyskać widok elementu w widoku listy w systemie Android?
- 6. Czy można "ukryć" rozszerzenia językowe?
- 7. Jak ukryć przycisk anulowania w niestandardowym DialogPreference w systemie Android?
- 8. Jak utworzyć widok popover w systemie Android, np. Na Facebooku?
- 9. Jak ukryć nazwę aplikacji z paska tytułu w systemie Android?
- 10. Widok (y) niewidoczny w systemie Android Jelly Bean
- 11. Czy można programowo programować obraz w Javie, systemie Android?
- 12. Czy można uzyskać rozdzielczość wideo w systemie Android?
- 13. Czy można używać Dlib w systemie Android, takim jak OpenCV?
- 14. Czy wywołanie ajax można zrobić w systemie Android?
- 15. Czy można zmienić kolor wybranej zakładki w systemie Android?
- 16. Czy można uzyskać listę drukarek Bluetooth w systemie Android?
- 17. Czy programowo można wyłączyć tryb cichy w systemie Android?
- 18. jak uzyskać widok ze współrzędnych zdarzeń w systemie Android?
- 19. Jak zaimplementować dostosowany widok stosu w systemie Android?
- 20. Czy można mieć indeksowany widok w MySQL?
- 21. Zmień niestandardowy widok Szerokość i wysokość w systemie Android
- 22. Przewiń widok wewnątrz przewijania w systemie Android Wydawnictwo
- 23. listy Widok Filtr Android
- 24. Czy można ukryć (nie usunąć) element PivotItem?
- 25. Czy można ukryć rodzica: aktywna pseudo-klasa?
- 26. Czy bezpieczny system statyczny w systemie Android?
- 27. Ustal, czy widok jest na ekranie - Android
- 28. Zagnieżdżone przewijanie w systemie Android
- 29. Android: Usuń widok z podglądu
- 30. Czy w systemie Android występuje zdarzenie instalacji?
Można również tworzyć cokolwiek „Maska” efekt chcesz i po prostu umieścić go na swój własny pogląd i umieścić go ontop/przed widzenia w kwestii . Jeśli potrzebujesz tego efektu tylko dla jednego określonego widoku, zaoszczędzisz sobie trudu tworzenia własnych widoków i edycji metod rysowania. – FoamyGuy
To byłoby zupełnie nie w porządku, Tim. Zmniejszysz swoją aplikację, tworząc zupełnie niepotrzebną hierarchię widoków na platformie mobilnej, gdzie wydajność jest kluczowa. – asenovm
Zgadzam się, że spowodowałoby to gorszą wydajność. Twierdzę, że jeśli zastosuje to do 1 widoku wewnątrz 1 działania, różnica w wydajności będzie niezauważalna dla ludzkiego oka na urządzeniach, które są na zewnątrz. A to, że robimy to z osobnymi widokami może wydawać się mniej zniechęcającym niektórym ludziom, niż próbować stworzyć swój własny pogląd, aby mogli nadpisać metody losowania. Wiem, że robienie takich rzeczy staje się trywialne po tym, jak zdobywasz kilka osób za pasem. Ale jeśli nigdy wcześniej tego nie robiłeś, wydaje mi się, że może to być nieco zniechęcające. – FoamyGuy