2016-06-11 118 views
0

我想创建一个具有一些属性的按钮。如何以编程方式创建任何形式的按钮?

  1. 它可以有任何形式,颜色和位置。
  2. 这些参数可以在应用程序
  3. 按钮来改变可以改变的触摸

我尝试使用CanvasDrawonTouchEvent它的颜色。但是是否存在更简单快捷的说法?任何帮助。谢谢!

回答

0

您可以使用下面的一个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)); 
+0

下面的代码中引用它在你的布局谢谢你,但我想改变形式了。例如,从比萨零件到明星。 –

相关问题