如何以编程方式创建任何形式的按钮?
问题描述:
我想创建一个具有一些属性的按钮。如何以编程方式创建任何形式的按钮?
- 它可以有任何形式,颜色和位置。
- 这些参数可以在应用程序
- 按钮来改变可以改变的触摸
我尝试使用Canvas
,Draw
和onTouchEvent
它的颜色。但是是否存在更简单快捷的说法?任何帮助。谢谢!
答
您可以使用下面的一个xml文件来为您的按钮创建状态。
您只需将此xml文件复制到项目中的drawables文件夹中,将其命名为custom_button.xml。
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape android:shape="rectangle">
<solid
android:color="#00ff00" />
<stroke
android:width="5dp"
android:color="#ff0000"
android:dashWidth="3dp"
android:dashGap="2dp" />
</shape>
</item>
<item android:state_focused="true" >
<shape>
<gradient
android:endColor="#ffffff"
android:centerColor="#ffffff"
android:startColor="#ffffff"
android:angle="270" />
<stroke
android:width="3dp"
android:color="#00ff00" />
<corners
android:radius="5dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient
android:endColor="#ffffff"
android:centerColor="#ffffff"
android:startColor="#ffffff"
android:angle="270" />
<stroke
android:width="5dp"
android:color="#00ff00" />
<corners
android:radius="5dp" />
</shape>
</item>
,并与您的onCreate方法
LinearLayout layout = (LinearLayout) findViewById(R.id.linear_layout_tags);
//set the properties for button
Button btnTag = new Button(this);
btnTag.setLayoutParams(new ActionBar.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT));
btnTag.setText("Button");
btnTag.setId(some_random_id);
btnTag.setBackground(getResources().getDrawable(R.drawable.custom_button));
下面的代码中引用它在你的布局谢谢你,但我想改变形式了。例如,从比萨零件到明星。 –