Android:TextView点击效果

TextView点击效果(Button

博客分类:

  • Layout

buttontextview 


TextView点击效果

演示的是一个用TextView来定义的一个Button,实现类似TabWidget风格的选项卡。
自定义按钮,这里没有通过Button类或者子类去做派生,而是通过TextView派生出来的。
在这里三个按钮是三个TextView派生类实例,中间的白线,是1px宽的白色矩形,这样就可以做出类似上面的效果。

效果图:

Android:TextView点击效果_第1张图片

工程结构图:

Android:TextView点击效果_第2张图片


/res/drawable/background_color.xml  用shape标签自定义一个渐变背景

Java代码  

      
       
			android:startColor="#FFFFFFFF"  
		android:endColor="#FFFFFFFF"  
		android:angle="270.0"  
		android:centerY="0.3"  
		android:centerColor="#FFBDBDBD"  
 	 />       
  



res/drawable/button_selector.xml

Java代码  

   
   
       
       
           
               
           
       
       
       
           
               
           
       
       
       
           
               
           
       
       
           
               
           
       
       
       
           
               
           
       
  




  
  
   
     
   
  
  
  
   
     
   
  
  
  
   
     
   
  
  
   
     
   
  
  
  
   
     
   
  


res/layout/main.xml,这个是主布局,由自定义的Button和1px的白色矩形组成

Java代码  

  1.    
       
      
           
           
               
               
               
               
               
           
      
      




 
  
  
   
   
   
   
   
  
 




继承自TextView的自定义Button:

Java代码  

  1. package com.amaker.testbutton;   
      
    import android.content.Context;   
    import android.util.AttributeSet;   
    import android.view.MotionEvent;   
    import android.view.View;   
    import android.widget.TextView;    
    import android.widget.Toast;   
      
    public class TextButton extends TextView {   
        public TextButton(Context context)   
        {   
            super(context);   
        }   
        public TextButton(Context context, AttributeSet attrs, int defStyle)   
        {   
            super(context,attrs,defStyle);   
        }   
        public TextButton(final Context context, AttributeSet attrs)   
        {   
            this(context,attrs,0);   
            this.setOnTouchListener(new OnTouchListener()   
            {   
      
                @Override  
                public boolean onTouch(View v, MotionEvent event) {   
                    if(event.getAction()==MotionEvent.ACTION_CANCEL   
                            ||event.getAction()==MotionEvent.ACTION_UP   
                            ||event.getAction()==MotionEvent.ACTION_OUTSIDE)   
                    {   
                        Toast.makeText(context, "hello", Toast.LENGTH_SHORT).show();   
                    }   
                    return false;   
                }   
                   
            });   
        }   
    }  

package com.amaker.testbutton;
 
import android.content.Context;
import android.util.AttributeSet;
importandroid.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
 
public class TextButton extendsTextView {
    public TextButton(Context context)
    {
        super(context);
    }
    public TextButton(Context context,AttributeSet attrs, int defStyle)
    {
        super(context,attrs,defStyle);
    }
    public TextButton(final Context context,AttributeSet attrs)
    {
        this(context,attrs,0);
        this.setOnTouchListener(new OnTouchListener()
        {
 
            @Override
            public boolean onTouch(View v,MotionEvent event) {
               if(event.getAction()==MotionEvent.ACTION_CANCEL
                       ||event.getAction()==MotionEvent.ACTION_UP
                        ||event.getAction()==MotionEvent.ACTION_OUTSIDE)
                {
                    Toast.makeText(context,"hello", Toast.LENGTH_SHORT).show();
                }
                return false;
            }
           
        });
    }
}




主程序:

Java代码  

package com.amaker.testbutton;   
  
import android.app.Activity;   
import android.os.Bundle;   
  
public class MainActivity extends Activity {   
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);   
        setContentView(R.layout.main);   
    }   
}  


 

你可能感兴趣的:(Android)