2015-07-03 3 views
0

Я создаю маску для изображения. На большинстве моих устройств он работает нормально. Вот как я это делаю.Прозрачная маска показана черным

enter image description here

<ImageView 
     android:id="@+id/im_photo" 
     android:layout_width="85dip" 
     android:layout_height="64dip" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginRight="8dip" 
     android:scaleType="centerCrop" /> 

    <View 
     android:layout_width="85dip" 
     android:layout_height="64dip" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginRight="8dip" 
     android:background="@drawable/rounded_mask_background" 
     android:duplicateParentState="true" /> 

маска

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="@android:integer/config_shortAnimTime"> 


    <item android:state_selected="true" android:state_activated="true" android:drawable="@drawable/selected_patch" /> 
    <item android:state_activated="true" android:drawable="@drawable/rounded_mask_selected" /> 
    <item android:state_selected="true" android:drawable="@drawable/rounded_mask_selected" /> 
    <item android:state_checked="true" android:drawable="@drawable/rounded_mask_selected" /> 
    <item android:state_focused="true" android:drawable="@drawable/rounded_mask_selected" /> 
    <item android:state_pressed="true" android:drawable="@drawable/rounded_mask_selected" /> 
    <item android:drawable="@drawable/rounded_mask_unselected" /> 

</selector> 

rounded_mask_unselected

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:bottom="-10dp" 
     android:left="-10dp" 
     android:right="-10dp" 
     android:top="-10dp"> 
     <shape android:shape="rectangle"> 
      <stroke 
       android:width="10dp" 
       android:color="@color/dark_gray" /> 
      <corners android:radius="20dp" /> 
     </shape> 
    </item> 
</layer-list> 

Unfortunatly на некоторых устройствах (например, Galaxy Tab 7,7) моя маска completle черный (если я удалить его, я см. unmask image)
enter image description here Как это исправить?

+0

Я видел эффекты, как это связано с аппаратным ускорением. Я бы предложил экспериментировать с включением/отключением аппаратного ускорения в представлениях. – HexAndBugs

+0

@HexBugsAndSausageRolls, изменяющие аппаратное ускорение, не влияют – Yarh

ответ

0

Эта проблема была вызвана различными стандартными цветами разных устройств. Иногда цвет по умолчанию был прозрачным, иногда черным. Решение - явно укажите фон.

Смежные вопросы