2016-10-12 182 views
1

我將前景設置爲我的圖像視圖以選擇它的何時被選中。這在Android 6版本中正常工作。在選擇分鐘版本沒有任何變化。請幫幫我。將前景設置爲圖像視圖

<ImageView 
     android:id="@+id/style_list_item_image_view" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:adjustViewBounds="true" 
     android:foreground="@drawable/style_item_selector" 
     android:scaleType="center" 
     android:drawSelectorOnTop="true" 
     android:clipChildren="true" 
     android:clipToPadding="true"/> 

style_item_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_selected="true"> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
      <size android:width="60dp" android:height="80dp" /> 
      <stroke android:width="1dp" android:color="#ff3591" /> 
      <solid android:color="@color/transparent100" /> 
      <corners android:radius="1dp" /> 
     </shape> 
    </item> 
</selector> 

回答

2

發現我有一個解決方案爲您

選擇會是這樣

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true"> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
     <size android:width="60dp" android:height="80dp" /> 
     <stroke android:width="1dp" android:color="#ff3591" /> 
     <solid android:color="@android:color/transparent" /> 
     <corners android:radius="1dp" /> 
    </shape> 
</item> 

的ImageView需要一定的收官之作

<FrameLayout 
    android:id="@+id/share" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:foreground="@drawable/style_item_selector"> 


    <ImageView 
    android:id="@+id/style_list_item_image_view" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:adjustViewBounds="true" 
    android:scaleType="center" 
    android:drawSelectorOnTop="true" 
    android:clipChildren="true" 
    android:clipToPadding="true"/> 
</FrameLayout> 

希望這適合你!

請確保您連接onClickListener到的FrameLayout

+0

謝謝。這幫助我。 – Butterfly

+0

@Meline享受... !!! –

-4

build.gradle file添加該代碼,並重建

compile 'com.android.support:multidex:1.0.0' 

我希望這會幫助你。 GL :)
this problem

1
 case R.styleable.View_foreground: 
      if (targetSdkVersion >= Build.VERSION_CODES.M || this instanceof FrameLayout) { 
       setForeground(a.getDrawable(attr)); 
      } 
      break; 

這是View.java初始化中的代碼。前景僅適用於API-23 +和FrameLayout