我正在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
并且我正在以编程方式将 ImageViews 添加到它,这一切都在工作。问题是我无法操纵矩形宽度。如果我做:
imageView.getLayoutParams().width = 10;
矩形需要有不同的大小和颜色。但是,如果我这样做,矩形会奇怪地变形,如果我不使用图层列表,而只使用形状(但这样我无法添加左边框),则不会发生这种情况。
所以我猜我需要得到LayerDrawable
,然后得到GradientDrawable
并改变它。但是我没有任何运气来实现这一点。
LayerDrawable layer = (LayerDrawable)imageView.getDrawable();
GradientDrawable rectangle = (GradientDrawable)layer.getDrawable(1);
// rectangle.setBounds
// rectangle.setColor NOT working
有什么提示吗?谢谢