我试图将可绘制背景设置为以编程方式创建的按钮。
下面是我创建按钮并设置背景的代码
Button increaseQuantity = new Button(this);
increaseQuantity.setText("+");
//increaseQuantity.setBackgroundResource(R.drawable.quantity_button);
increaseQuantity.setBackgroundDrawable(getResources().getDrawable(R.drawable.quantity_button));
下面是包含drawable
代码的xml<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
<stroke android:width="1dp" android:color="#ee404040" />
<size android:width="2dp" android:height="2dp"/>
<gradient android:startColor="#11809100" android:centerColor="#11910000" android:endColor="#55FFB900" android:angle="45" />
</shape>
根据xml我的按钮应该是圆形的(因为宽度和高度是相同的),但我不能得到一个圆形的按钮,而是我得到一个椭圆形的按钮。任何人都可以更正此代码以获得圆形按钮吗?
答案 0 :(得分:0)
这里只有两件事:
setBackgroundDrawable
和getDrawable
已弃用。这应该做的工作:
increaseQuantity.setBackground(ContextCompat.getDrawable(this, R.drawable.round));
increaseQuantity.setLayoutParams(new LinearLayout.LayoutParams(100, 100));
//replace 100 with your desired diameter of the button.
此外,您必须将LinearLayout
替换为您将按钮与之关联的父版式。