如何更改形状为矩形的笔触颜色,但我想在RecyclerView适配器中以特定项目的顶部笔划或底部笔触颜色动态更改颜色。
@绘制/ border_custom
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- TOP STROKE-->
<item android:top="15dp" android:id="@+id/deviceTop">
<shape android:shape="rectangle">
<solid android:color="@color/ripple_divider" />
</shape>
</item>
<!-- BOTTOM STROKE-->
<item android:top="15dp" android:id="@+id/deviceBottom">
<shape android:shape="rectangle">
<solid android:color="@color/ripple_divider" />
</shape>
</item>
<!--LEFT STROKE-->
<item android:left="15dp" android:id="@+id/deviceLeft">
<shape android:shape="rectangle">
<solid android:color="@color/ripple_divider" />
</shape>
</item>
<!--RIGHT STROKE-->
<item android:right="15dp" android:id="@+id/deviceRight">
<shape android:shape="rectangle">
<solid android:color="@color/ripple_divider" />
</shape>
</item>
<!-- MAIN SHAPE -->
<item android:top="15dp" android:bottom="15dp" android:left="15dp" android:right="15dp">
<shape android:shape="rectangle">
<solid android:color="@color/ripple_white" />
</shape>
</item>
这是我的XML文件,我在我的线性布局中使用上面的XML背景
<LinearLayout
android:id="@+id/llDevice"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@drawable/border_device"
android:orientation="vertical"
android:gravity="center_horizontal|center_vertical"/>
和我的主要活动XML
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="1dp"
android:layout_marginTop="16dp"
android:scrollbars="vertical"
android:visibility="gone" />
请帮我解释如何动态地改变不同颜色的不同颜色。
提前的Thanx:)
答案 0 :(得分:0)
您可以通过以下方式获取Drawable作为LayerDrawable的引用:
LayerDrawable layerDrawable = (LayerDrawable) getResources()
.getDrawable(R.drawable.border_device);
然后你可以通过他们的id
引用你的不同层GradientDrawable leftSide = (GradientDrawable) layerDrawable.findDrawableByLayerId(R.id.deviceLeft);
最后修改它的颜色:
leftSide.setColor(Color.GRAY);
祝你好运,快乐的编码!