Android:TextView点击效果
来源:互联网 发布:csgo国服网络连接失败 编辑:程序博客网 时间:2024/05/17 20:45
TextView点击效果(Button)
博客分类:
- Layout
buttontextview
TextView点击效果
演示的是一个用TextView来定义的一个Button,实现类似TabWidget风格的选项卡。
自定义按钮,这里没有通过Button类或者子类去做派生,而是通过TextView派生出来的。
在这里三个按钮是三个TextView派生类实例,中间的白线,是1px宽的白色矩形,这样就可以做出类似上面的效果。
效果图:
工程结构图:
/res/drawable/background_color.xml 用shape标签自定义一个渐变背景
Java代码
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <span style="white-space:pre"></span><gradient <span style="white-space:pre"></span>android:startColor="#FFFFFFFF" <span style="white-space:pre"></span>android:endColor="#FFFFFFFF" <span style="white-space:pre"></span>android:angle="270.0" <span style="white-space:pre"></span>android:centerY="0.3" <span style="white-space:pre"></span>android:centerColor="#FFBDBDBD" <span style="white-space:pre"></span> /> </shape>
res/drawable/button_selector.xml
Java代码
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" android:constantSize="true"> <!-- 获得焦点时的背景图片 --> <item android:state_focused="true"> <shape> <gradient android:startColor="#FFE5CF33" android:endColor="#FFF1E7A2" android:angle="90.0" /> </shape> </item> <!-- 设置相应所有事件 --> <item android:state_enabled="true" android:state_pressed="false"> <shape> <gradient android:startColor="#FF1B1B1B" android:endColor="#FF969696" android:angle="90.0" /> </shape> </item> <!-- 按钮点击时的背景 --> <item android:state_enabled="true" android:state_pressed="true"> <shape> <gradient android:startColor="#FF000000" android:endColor="#FF474747" android:angle="90.0" /> </shape> </item> <item android:state_enabled="false" android:state_pressed="true"> <shape> <gradient android:startColor="#FF000000" android:endColor="#FF474747" android:angle="90.0" /> </shape> </item> <!-- 默认情况下的背景 --> <item> <shape> <gradient android:startColor="#FF000000" android:endColor="#FF474747" android:angle="90.0" /> </shape> </item> </selector>
<?xmlversion="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android" android:constantSize="true"> <!-- 获得焦点时的背景图片 --> <item android:state_focused="true"> <shape> <gradient android:startColor="#FFE5CF33" android:endColor="#FFF1E7A2" android:angle="90.0" /> </shape> </item> <!-- 设置相应所有事件 --> <item android:state_enabled="true" android:state_pressed="false"> <shape> <gradient android:startColor="#FF1B1B1B" android:endColor="#FF969696" android:angle="90.0" /> </shape> </item> <!-- 按钮点击时的背景 --> <item android:state_enabled="true" android:state_pressed="true"> <shape> <gradient android:startColor="#FF000000" android:endColor="#FF474747" android:angle="90.0" /> </shape> </item> <item android:state_enabled="false" android:state_pressed="true"> <shape> <gradient android:startColor="#FF000000" android:endColor="#FF474747" android:angle="90.0" /> </shape> </item> <!-- 默认情况下的背景 --> <item> <shape> <gradient android:startColor="#FF000000" android:endColor="#FF474747" android:angle="90.0" /> </shape> </item></selector>
res/layout/main.xml,这个是主布局,由自定义的Button和1px的白色矩形组成
Java代码
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/background_color" android:orientation="vertical"> <LinearLayout android:layout_width="fill_parent" android:layout_height="10dip" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="40dip"> <com.amaker.testbutton.TextButton android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:text="饮食" android:gravity="center" android:background="@drawable/button_selector" android:focusable="true" android:clickable="true" /> <View android:layout_width="2px" android:layout_height="fill_parent" android:background="#FFFFFFFF" /> <com.amaker.testbutton.TextButton android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:text="旅行" android:gravity="center" android:background="@drawable/button_selector" android:focusable="true" android:clickable="true" /> <View android:layout_width="2px" android:layout_height="fill_parent" android:background="#FFFFFFFF" /> <com.amaker.testbutton.TextButton android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:text="体育" android:gravity="center" android:background="@drawable/button_selector" android:focusable="true" android:clickable="true" /> </LinearLayout> </LinearLayout>
<?xmlversion="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/background_color" android:orientation="vertical"> <LinearLayout android:layout_width="fill_parent" android:layout_height="10dip" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="40dip"> <com.amaker.testbutton.TextButton android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:text="饮食" android:gravity="center" android:background="@drawable/button_selector" android:focusable="true" android:clickable="true" /> <View android:layout_width="2px" android:layout_height="fill_parent" android:background="#FFFFFFFF" /> <com.amaker.testbutton.TextButton android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:text="旅行" android:gravity="center" android:background="@drawable/button_selector" android:focusable="true" android:clickable="true" /> <View android:layout_width="2px" android:layout_height="fill_parent" android:background="#FFFFFFFF" /> <com.amaker.testbutton.TextButton android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:text="体育" android:gravity="center" android:background="@drawable/button_selector" android:focusable="true" android:clickable="true" /> </LinearLayout> </LinearLayout>
继承自TextView的自定义Button:
Java代码
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); } }
0 0
- Android:TextView点击效果
- Android TextView点击效果
- Android TextView点击颜色效果
- android自定义TextView点击效果
- Android TextView实现点击展开动画效果
- Android背景选择器、Textview点击效果
- android 设置textview边框以及点击效果
- android TextView 实现自定义文字点击效果
- TextView设置点击效果
- [Android] ImageButton | Button | TextView 点击和触摸效果实现
- Android TextView的点击效果之改变背景颜色
- Androd TextView 点击变化效果
- TextView属性android:ellipsize实现跑马灯效果,TextView内容过长加省略号,点击显示全部内容
- Android问题集(二)——TextView在点击时显示不同颜色,Button点击效果
- Android TextView滚动效果
- TextView 滚动效果 android
- android TextView 走马灯效果
- Android TextView走马灯效果
- 社区打滚这么多年
- CentOS安装DDD
- Java工具链(一)--项目管理工具
- Red Hat Enterprise Linux 7部署Google容器管理工具Kubernetes
- 使用PinYin4j.jar将汉字转换为拼音
- Android:TextView点击效果
- 第三个驱动-tq2440
- hash之开放定址法解决冲突
- win8.1下安装deepin 2014经验
- LIBSVM使用
- Google容器管理工具Kubernetes简介
- POJ 1005 I Think I Need a Houseboat(水题)
- 回调函数的定义与用法
- linux 下安装vmware的注意事项