我以编程方式向ImageView
添加了几个LinearLayout
,ImageView
将src
设置为R.drawable.rectangle
。
我正在尝试创建一个纯色的矩形,只有左边的边框。
R.drawable.rectangle 如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#000000" />
<stroke android:width="1dp" android:color="#999" />
</shape>
</item>
<item
android:top="0dp" android:left="1dp" android:bottom="0dp" android:right="0dp">
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid android:color="#283BCB"/>
<size android:width="100dp" android:height="8dp" />
</shape>
</item>
</layer-list>
在我的活动中,我正在膨胀包含LinearLayout
的布局,并且我正在以编程方式向其添加ImageView,这一切都正常。问题是我无法操纵矩形宽度。如果我这样做:
imageView.getLayoutParams().width = 10;
矩形需要不同的尺寸和颜色。但是,如果我这样做,矩形变形奇怪,这不会发生如果我不使用图层列表,但只使用一个形状(但这样我不能添加左边框)。
所以我猜我需要获得LayerDrawable
,然后获取GradientDrawable
并进行更改。但是我没有运气实现这一点。
LayerDrawable layer = (LayerDrawable)imageView.getDrawable();
GradientDrawable rectangle = (GradientDrawable)layer.getDrawable(1);
// rectangle.setBounds
// rectangle.setColor NOT working
任何提示?感谢