[安卓] 2、使用2中方法做按钮监听和图片按钮使用

简介:


 

 

 


 

第一种方法是使用点击监听器来实现(代码中注释掉的部分):这种方法要在初始化的函数中将按钮绑定在点击监听器上(23,24)btn_ok.setOnClickListener(this);。然后处理统一写在抽象函数onClick(View v) 中,并用v == btn_ok来判别是哪一个按钮的点击。(28~34)

第二种方法是使用内部类实现按键监听,具体如下(这个看起来要代码多一点,各个处理是单独的)

复制代码
 1 package com.himi.button;//包路径
 2 //import导入类库
 3 
 4 import android.app.Activity;
 5 import android.os.Bundle;
 6 import android.view.View;
 7 import android.view.View.OnClickListener;
 8 import android.widget.Button;
 9 import android.widget.TextView;
10 
11 /* 使用点击监听器接口进行监听
12  public class MainActivity extends Activity implements OnClickListener {//使用点击监听器
13      private Button btn_ok, btn_cancel;
14      private TextView tv;
15     
16      @Override
17      public void onCreate(Bundle savedInstanceState) {
18          super.onCreate(savedInstanceState);
19          setContentView(R.layout.main);
20          btn_ok = (Button) findViewById(R.id.btn_ok);
21          btn_cancel = (Button) findViewById(R.id.btn_cancel);
22          tv = (TextView) findViewById(R.id.tv);
23          btn_ok.setOnClickListener(this);//将btn_ok按钮绑定在点击监听器上
24          btn_cancel.setOnClickListener(this);//将btn_cancel按钮绑定在点击监听器上
25      }
26     
27      @Override
28      public void onClick(View v) {//使用监听器就要重写其抽象函数 
29          if (v == btn_ok) {
30              tv.setText("确定按钮触发事件!");
31          } else if (v == btn_cancel) {
32              tv.setText("取消按钮触发事件!");
33          }
34     }
35  }
36  */
37 //内部类实现按键监听
38 public class MainActivity extends Activity {// 使用点击监听器
39     private Button btn_ok, btn_cancel;
40     private TextView tv;
41 
42     @Override
43     public void onCreate(Bundle savedInstanceState) {
44         super.onCreate(savedInstanceState);
45         setContentView(R.layout.main);
46         btn_ok = (Button) findViewById(R.id.btn_ok);
47         btn_cancel = (Button) findViewById(R.id.btn_cancel);
48         tv = (TextView) findViewById(R.id.tv);
49         btn_ok.setOnClickListener(new OnClickListener() {// 将btn_ok按钮绑定在点击监听器上
50             @Override
51             public void onClick(View v) {
52                 tv.setText("确定按钮触发事件!");
53             }
54         });
55         btn_cancel.setOnClickListener(new OnClickListener() {// 将btn_cancel按钮绑定在点击监听器上
56             @Override
57             public void onClick(View v) {
58                 tv.setText("取消按钮触发事件!");
59             }
60         });
61     }
62 
63 }
复制代码

 


理解了上面的下面的图片按钮也就很简单啦:如下第9行可见我这里用的不是鼠标的点击监听了,而是触屏监听。其中根据触屏事件来更换ImageButton的背景来实现上述效果。这里的图片资源是存起来的,通过调用getResources().getDrawable(R.drawable.xxx)来获取资源。

复制代码
 1 public class MainActivity extends Activity {
 2     private ImageButton Ibtn;
 3     @Override
 4     public void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.main);
 7         Ibtn = (ImageButton)findViewById(R.id.imageBtn); 
 8         //为图片按钮添加触屏监听
 9         Ibtn.setOnTouchListener(new OnTouchListener() {
10             @Override
11             public boolean onTouch(View v, MotionEvent event) {
12                 //用户当前为按下
13                 if(event.getAction()==MotionEvent.ACTION_DOWN){
14                     //设置图片按钮背景图
15                     Ibtn.setBackgroundDrawable(getResources().getDrawable(R.drawable.press));
16                 //用户当前为抬起
17                 }else if(event.getAction()==MotionEvent.ACTION_UP){
18                     Ibtn.setBackgroundDrawable(getResources().getDrawable(R.drawable.nopress));
19                 }
20                 return false;
21             }
22         });
23     }
24 }
复制代码

注意:这里的按钮是ImageButton!

 

 

 

  

本文链接:http://www.cnblogs.com/zjutlitao/p/4229564.html

更多精彩:http://www.cnblogs.com/zjutlitao



本文转自beautifulzzzz博客园博客,原文链接:http://www.cnblogs.com/zjutlitao/p/4229564.html,如需转载请自行联系原作者

相关文章
|
2月前
|
存储 消息中间件 人工智能
【03】AI辅助编程完整的安卓二次商业实战-本地构建运行并且调试-二次开发改注册登陆按钮颜色以及整体资源结构熟悉-优雅草伊凡
【03】AI辅助编程完整的安卓二次商业实战-本地构建运行并且调试-二次开发改注册登陆按钮颜色以及整体资源结构熟悉-优雅草伊凡
109 3
|
2月前
|
存储 消息中间件 人工智能
【05】AI辅助编程完整的安卓二次商业实战-消息页面媒体对象(Media Object)布局实战调整-按钮样式调整实践-优雅草伊凡
【05】AI辅助编程完整的安卓二次商业实战-消息页面媒体对象(Media Object)布局实战调整-按钮样式调整实践-优雅草伊凡
105 11
【05】AI辅助编程完整的安卓二次商业实战-消息页面媒体对象(Media Object)布局实战调整-按钮样式调整实践-优雅草伊凡
|
6月前
|
Android开发 开发者
Android自定义view之利用drawArc方法实现动态效果
本文介绍了如何通过Android自定义View实现动态效果,重点使用`drawArc`方法完成圆弧动画。首先通过`onSizeChanged`进行测量,初始化画笔属性,设置圆弧相关参数。核心思路是不断改变圆弧扫过角度`sweepAngle`,并调用`invalidate()`刷新View以实现动态旋转效果。最后附上完整代码与效果图,帮助开发者快速理解并实践这一动画实现方式。
171 0
|
4月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
335 11
|
6月前
|
XML Android开发 数据格式
Android利用selector(选择器)实现图片动态点击效果
本文介绍了Android中ImageView的`src`与`background`属性的区别及应用,重点讲解如何通过设置背景选择器实现图片点击动态效果。`src`用于显示原图大小,不拉伸;`background`可随组件尺寸拉伸。通过创建`selector_setting.xml`,结合`setting_press.xml`和`setting_normal.xml`定义按下和正常状态的背景样式,提升用户体验。示例代码展示了具体实现步骤,包括XML配置和形状定义。
290 3
Android利用selector(选择器)实现图片动态点击效果
|
6月前
|
Java Android开发
Android图片的手动放大缩小
本文介绍了通过缩放因子实现图片放大缩小的功能,效果如动图所示。关键步骤包括:1) 在布局文件中设置 `android:scaleType="matrix"`;2) 实例化控件并用 `ScaleGestureDetector` 处理缩放手势;3) 使用 `Matrix` 对图片进行缩放处理。为避免内存崩溃,可在全局配置添加 `android:largeHeap="true"`。代码中定义了 `beforeScale` 和 `nowScale` 变量控制缩放范围,确保流畅体验。
209 8
|
6月前
|
缓存 编解码 Android开发
Android内存优化之图片优化
本文主要探讨Android开发中的图片优化问题,包括图片优化的重要性、OOM错误的成因及解决方法、Android支持的图片格式及其特点。同时介绍了图片储存优化的三种方式:尺寸优化、质量压缩和内存重用,并详细讲解了相关的实现方法与属性。此外,还分析了图片加载优化策略,如异步加载、缓存机制、懒加载等,并结合多级缓存流程提升性能。最后对比了几大主流图片加载框架(Universal ImageLoader、Picasso、Glide、Fresco)的特点与适用场景,重点推荐Fresco在处理大图、动图时的优异表现。这些内容为开发者提供了全面的图片优化解决方案。
258 1
|
存储 Shell Android开发
基于Android P,自定义Android开机动画的方法
本文详细介绍了基于Android P系统自定义开机动画的步骤,包括动画文件结构、脚本编写、ZIP打包方法以及如何将自定义动画集成到AOSP源码中。
542 2
基于Android P,自定义Android开机动画的方法
|
Android开发
基于android-11.0.0_r39,系统应用的手动签名方法和过程
本文介绍了基于Android 11.0.0_r39版本进行系统应用手动签名的方法和解决签名过程中遇到的错误,包括处理`no conscrypt_openjdk_jni-linux-x86_64`和`RegisterNatives failed`的问题。
642 2
|
缓存 Java Shell
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
477 15
Android 系统缓存扫描与清理方法分析

热门文章

最新文章