Intereting Posts
ByteBufferAsShortBuffer нельзя передать в java.nio.FloatBuffer Пакет имеет несоответствующий uid: 10124 на диске, 10134 в настройках Внедрение библиотеки для отслеживания всех событий в приложении NullPointerException с строковым массивом в Spinner Зачем использовать onDestroy (), если он не гарантированно называется? Лучший способ оценить скорость соединения Динамическое графическое построение с помощью openGL в Android Как это возможно? Сервис выполняется неограниченно, а также разрешает привязку к андроиду? Использование getFragmentManager () и getSupportFragmentManager ()? Lazy Загрузка в ListView с изображением. (Адаптер курсора) Есть ли альтернатива NestedScrollView для использования с WebView? Дезаминировать с помощью gson и нулевые значения Proguard не может найти ссылочный метод 'void allowCoreThreadTimeOut (boolean)' Обновление конфликта версий для игровых сервисов 9.4.0 Android studio 2.2 Доступ к веб-обозревателю Android Webview

Можно ли замаскировать представление в андроиде?

Можно ли маскировать представления? Например, если у меня есть проект, который требует, чтобы вид списка был видимым в овальной форме. Есть ли способ создать маску для представления? Это называется чем-то еще? Поскольку все ссылки, которые я нахожу для маскирования в документах android, говорят о маскировке объекта canvas или drawable. Но я не думаю, что создание привлекательного интерактивного объекта, такого как List View, будет хорошим подходом. На данный момент это ограничение?

Solutions Collecting From Web of "Можно ли замаскировать представление в андроиде?"

Да, это – вы должны переопределить метод рисования вашего представления – то есть:

...... 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); } 

Это нарисует ваше представление только в границах, установленных по пути.

Да, вы можете даже маскировать полные макеты. Бесстыдный самозаряд

 <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"/> 

Вы можете найти его здесь