Android学习之按钮的点击、触摸、开关

举报
ReCclay 发表于 2022/02/22 01:21:11 2022/02/22
【摘要】 别忘了,每申请一个活动都需要在AndroidManifest中注册! 点击 app/src/main/java/包名/MainActivity.java public class MainAct...

别忘了,每申请一个活动都需要在AndroidManifest中注册!


点击

  • app/src/main/java/包名/MainActivity.java
public class MainActivity extends AppCompatActivity {

    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = (Button)findViewById(R.id.button11);
        button.setOnClickListener(buttonClickListener);
    }

    private View.OnClickListener buttonClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //button动作
        }
    };
}
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

触摸

需要在先添加相应的样式

  • app/src/main/res/drawable/button_up
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <corners
        android:radius="7dp" />
    <solid
        android:color="@android:color/holo_orange_light" />
    <stroke
        android:width="1dp"
        android:color="@android:color/holo_red_light" />

</shape>
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • app/src/main/res/drawable/button_down
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <corners
        android:radius="7dp" />
    <solid
        android:color="@android:color/holo_orange_dark" />
    <stroke
        android:width="1dp"
        android:color="@android:color/holo_red_light" />

</shape>
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

布局文件中引用

  • app/src/main/res/layout/activity_main.xml
...

android:textColor="@android:color/black"
android:background="@drawable/button_up"
...
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • app/src/main/java/包名/MainActivity.java
/*触摸事件*/
private View.OnTouchListener buttonJumpTouch = new View.OnTouchListener() {

   @Override
   public boolean onTouch(View v, MotionEvent event) {
       // TODO Auto-generated method stub
       if (event.getAction()==MotionEvent.ACTION_DOWN) {
           buttonJump.setBackgroundResource(R.drawable.button_down);
       }
       if (event.getAction()==MotionEvent.ACTION_UP) {
           buttonJump.setBackgroundResource(R.drawable.button_up);
       }
       return false;
   }
};
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

以上的触摸还有一种更好的写法,
- app/src/main/res/drawable目录需要放置button_upbutton_down

然后呢,只需要再多多放一个button_shape

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/button_down"/>
    <item android:state_pressed="false" android:drawable="@drawable/button_up"/>
</selector>
  
 
  • 1
  • 2
  • 3
  • 4
  • 5

然后在对应的控件上,添加属性

android:background="@drawable/button_shape"
  
 
  • 1

即可!


开关

需要添加图片的话,首先在相应分辨率的文件夹下放置图片。
(关于不同文件夹下的不同分辨率,具体了解戳这里!)

  • app/src/main/res/drawable-hdpi
    添加图片:ledonledoff

  • `app/src/main/java/包名/MainActivity.java


//设置SWITCH的状态改变事件
switchLamp.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

        if (isChecked) {//切换图片
            imageViewLamp.setImageResource(R.drawable.ledon);
        }
        else {
            imageViewLamp.setImageResource(R.drawable.ledoff);
        }
    }
});
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。

原文链接:recclay.blog.csdn.net/article/details/81395196

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200