假设我将ImageView
定义为:
<ImageView
android:id="@+id/my_image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/my_image_view_background"
/>
my_image_view_background
为:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
<gradient
android:angle="45"
android:startColor="#555555"
android:endColor="#111111"
android:type="radial"
android:centerX="0.1"
android:centerY="0.1"
android:gradientRadius="70"
/>
<stroke
android:width="5dp"
android:color="#ff3300"
/>
</shape>
是否可以访问my_image_view_background
drawable并在代码中更改其笔触的颜色?此外,是否可以根据“状态”(按下/选择/默认)执行此操作?
答案 0 :(得分:2)
是的可能
使用GradientDrawable可以通过代码完成。
GradientDrawable gd = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[] {0xFFadced4, 0xFF71c2eb });
gd.setCornerRadius(0f);
gd.setStroke(1, 0xFF7c279b); //here you can define stroke width
gd.setCornerRadius(3f);