Android - 自定义按钮(Button)点击、获取焦点的背景
发布日期:2021-05-06 23:02:49 浏览次数:37 分类:精选文章

本文共 3190 字,大约阅读时间需要 10 分钟。

文章目录

准备

IDE:

Android Studio 4.1.1Build #AI-201.8743.12.41.6953283, built on November 5, 2020Runtime version: 1.8.0_242-release-1644-b01 amd64VM: OpenJDK 64-Bit Server VM by JetBrains s.r.oWindows 10 10.0

Android Virtual Devices:

Name: Pixel_2_API_28CPU/ABI: Google Play Intel Atom (x86)Path: C:\Users\86188\.android\avd\Pixel_2_API_28.avdTarget: google_apis_playstore [Google Play] (API level 28)Skin: pixel_2SD Card: 512Mfastboot.chosenSnapshotFile: runtime.network.speed: fullhw.accelerometer: yeshw.device.name: pixel_2hw.lcd.width: 1080hw.initialOrientation: Portraitimage.androidVersion.api: 28tag.id: google_apis_playstorehw.mainKeys: nohw.camera.front: emulatedavd.ini.displayname: Pixel 2 API 28hw.gpu.mode: autohw.ramSize: 1536PlayStore.enabled: truefastboot.forceColdBoot: nohw.cpu.ncore: 4hw.keyboard: yeshw.sensors.proximity: yeshw.dPad: nohw.lcd.height: 1920vm.heapSize: 256skin.dynamic: yeshw.device.manufacturer: Googlehw.gps: yeshw.audioInput: yesimage.sysdir.1: system-images\android-28\google_apis_playstore\x86\showDeviceFrame: yeshw.camera.back: virtualsceneAvdId: Pixel_2_API_28hw.lcd.density: 420hw.arc: falsehw.device.hash2: MD5:55acbc835978f326788ed66a5cd4c9a7fastboot.forceChosenSnapshotBoot: nofastboot.forceFastBoot: yeshw.trackBall: nohw.battery: yeshw.sdCard: yestag.display: Google Playruntime.network.latency: nonedisk.dataPartition.size: 6442450944hw.sensors.orientation: yesavd.ini.encoding: UTF-8hw.gpu.enabled: yes

注意:以下示例仅在安卓虚拟设备上运行测试,并没有在真实的设备上运行测试。

自定义按钮(Button)点击、获取焦点的背景

在这里插入图片描述

新建项目,选择 Empty Activity,在配置项目时,Minimum SDK 选择 API 16: Android 4.1 (Jelly Bean)

编辑 src\main\AndroidManifest.xml 应用清单文件,修改应用主题(第 5 行):

...

新增 src\main\res\drawable\button_state_pressed.xml 文件:

新增 src\main\res\drawable\button_state_focused.xml 文件:

新增 src\main\res\drawable\button_state_default.xml 文件:

新增 src\main\res\drawable\button_custom.xml 文件:

编辑 src\main\res\layout\activity_main.xml 布局文件:

编辑 MainActivity 文件:

package com.mk;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Toast;public class MainActivity extends AppCompatActivity {       @Override    protected void onCreate(Bundle savedInstanceState) {           super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button button = (Button) findViewById(R.id.button);        button.setOnClickListener(new View.OnClickListener() {               @Override            public void onClick(View v) {                   Toast.makeText(MainActivity.this, "On Click", Toast.LENGTH_SHORT).show();            }        });        button.setOnFocusChangeListener(new View.OnFocusChangeListener() {               @Override            public void onFocusChange(View v, boolean hasFocus) {                   if (hasFocus)                    Toast.makeText(MainActivity.this, "On Focus", Toast.LENGTH_SHORT).show();            }        });    }}

参考

上一篇:Android - Bluetooth overview(不完整)
下一篇:Android - 接收蓝牙状态改变的广播

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月22日 12时49分58秒