Android - 以编程方式在图层列表中设置形状边的单个笔划

时间:2016-06-01 11:19:49

标签: android android-layout android-xml android-shape

这是我的形状xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/comp_background" android:top="0px" android:right="0px" android:left="-5px">
<shape>
    <corners android:bottomRightRadius="100px"
        android:topRightRadius="100px"/>
    <solid android:color="@color/OptionNotSelected" />
    <stroke android:width="5px" android:color="#000000" />
</shape>

这是我得到的输出(正确输出IMAGE

请注意,左侧的笔划缺失 我想以编程方式进行此操作。我试过的代码就是这个

int cornerRadius=50;
float[] med_corners=new float[]{cornerRadius,cornerRadius,0,0,0,0,cornerRadius,cornerRadius};

LayerDrawable layers1 = (LayerDrawable)ContextCompat.getDrawable(context,R.drawable.medicine_btn_background);
GradientDrawable shape1= (GradientDrawable)(layers1.findDrawableByLayerId(R.id.med_background));
shape1.setColor(ContextCompat.getColor(context,R.color.OptionNotSelected));
shape1.setStroke(5,ContextCompat.getColor(context,android.R.color.black));
shape1.setCornerRadii(med_corners);
btn_medicine.setBackground(shape1);
btn_medicine.setTextColor(ContextCompat.getColor(context,R.color.OptionSelected));

这是我得到的输出 IMAGE2
在这里,我得到左边界。 我不想要。我并排放置了两个按钮,当点击这些按钮时,我会在这些按钮的背景之间切换。当我尝试 setBackgroundResource()方法时,我会丢失圆角。我上面给出的代码有助于保留圆角但重新创建左边框。任何方式来实现这一目标......?

非常感谢任何帮助

0 个答案:

没有答案