2016-10-12 146 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