自定义了一个Button按钮,效果如图,有自定义背景(可根据文字长短扩展),自定义按钮图片和文字背景图片扩展,参考http://www.7747.net/kf/201104/88131.html 这个文章,http://blog.csdn.net/greatstar/archive/2010/10/12/5936177.aspx 和这个文章。使用draw9patch时遇到不能启动,原因是Android 2.3少了一个包,swing-worker-1.2 下载放在android-sdk\tools\lib 下遍可以正常使用。

 其他直接上代码

?[Copy to clipboard] Download zuiniuwang.java
  
   
   
   
   
  1. <span style="font-size: 14px">import android.content.Context;  
  2. import android.view.ViewGroup;  
  3. import android.widget.ImageView;  
  4. import android.widget.LinearLayout;  
  5. import android.widget.RelativeLayout;  
  6. import android.widget.TextView;  
  7.    
  8. public class MyViewTest extends RelativeLayout {  
  9.    
  10.     private final int WC = LinearLayout.LayoutParams.WRAP_CONTENT;  
  11.     private final int FP = LinearLayout.LayoutParams.FILL_PARENT;  
  12.     private final static  String TAG = MyViewTest.class.getSimpleName();  
  13.     /**  
  14.      *  
  15.      * @param context  
  16.      * @param backgroudPic  背景图片的ID  为空则为默认  
  17.      * @param p_w_picpathPic     按钮前面的图片   为空则为默认  
  18.      * @param text         按钮的文本             为空则为默认  
  19.      */  
  20.    
  21.     public MyViewTest(Context context, Integer backgroudPic , Integer p_w_picpathPic , String text) {  
  22.         super(context);  
  23.         // TODO Auto-generated constructor stub  
  24.         if(backgroudPic==null)  
  25.             this.setBackgroundResource(R.drawable.my_music_button);  
  26.         else  
  27.             this.setBackgroundResource(backgroudPic);  
  28.    
  29.         ImageView  p_w_picpathView =  new ImageView(context);  
  30.         if(p_w_picpathPic==null)  
  31.             p_w_picpathView.setImageResource(R.drawable.style1_button_icon_normal);  
  32.         else  
  33.             p_w_picpathView.setImageResource(p_w_picpathPic);  
  34.         p_w_picpathView.setId(1);  
  35.         RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,  
  36.                 ViewGroup.LayoutParams.WRAP_CONTENT);  
  37.         lp1.addRule(RelativeLayout.RIGHT_OF , 1);  
  38.    
  39.         TextView  textView =  new TextView(context);  
  40.         if(text==null)  
  41.             textView.setText("my custom button");  
  42.         else  
  43.             textView.setText(text);  
  44.         this.addView(p_w_picpathView);  
  45.         this.addView(textView , lp1);  
  46.    
  47.     }  
  48.    
  49. }  

其中R.drawable.my_music_button 是一个XML文件,定义了按钮的选中点击等事件发生时,背景图片的变化,直接更改文件中相应的图片便可

?[Copy to clipboard] Download zuiniuwang.xml
 
 

 

   
   
   
   
  1. <span style="font-size: 14px">xml version="1.0" encoding="UTF-8"?> 
  2. span> 
  3. <selector xmlns:android="http://schemas.android.com/apk/res/android"><span style="font-size: 14px"> 
  4.    
  5.     span><item android:drawable="@drawable/my_button_bg" android:state_pressed="true"><span style="font-size: 14px"> 
  6.     span><item android:drawable="@drawable/my_button_bg" android:state_focused="true"><span style="font-size: 14px"> 
  7.     span><item android:drawable="@drawable/my_music_button_bg"><span style="font-size: 14px"> 
  8.    
  9. span>item>item>item>selector><span style="font-size: 14px"> 
  10. span>