3

我正在ImageViewLinearLayout编程方式添加几个,它们ImageViewsrc设置为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

有什么提示吗?谢谢

4

0 回答 0