我也接受android不久,今天来给同学们分享一下button得到焦点和点击后改变背景图片,其实很简单就是两个事件setOnFocusChangeListener和setOnClickListener就OK了。
这是Activity 中的代码。
package com.hai;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
public class Main extends Activity {
private TextView mTV;
private ImageButton imgBtn;
private Button btn;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTV = (TextView) findViewById(R.id.tv);
imgBtn= (ImageButton) findViewById(R.id.imgBtn);
btn = (Button) findViewById(R.id.Btn);
// ImageButton的的onFous事件
imgBtn.setOnFocusChangeListener(new ImageButton.OnFocusChangeListener(){
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
if(hasFocus == true) {
imgBtn.setImageResource(R.drawable.shortcut_pic_focus);
mTV.setText("图片按钮状态为:获得焦点");
}else{
imgBtn.setImageResource(R.drawable.shortcut_pic_unfocus);
mTV.setText("图片按钮状态为:失去焦点");
}
}
});
// ImageButton的单击事件
imgBtn.setOnClickListener(new ImageButton.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
imgBtn.setImageResource(R.drawable.shortcut_pic_focus);
mTV.setText("图片按钮状态为:单击");
}
});
// 普通按钮的单击事件
btn.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
imgBtn.setImageResource(R.drawable.shortcut_pic_unfocus);
mTV.setText("您按的是普通按钮!");
}
});
}
}
然后再写一个XML文件。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/tv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<ImageButton
android:id="@+id/imgBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/shortcut_pic_unfocus"
/>
<Button
android:id="@+id/Btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button按钮"
/>
</LinearLayout>
大伙直接把代码拿过去就可以看到效果,记得自己本地图片.
分享到:
相关推荐
现在,当我们的自定义Button在不同状态下(按下、获取焦点、正常)时,它会根据我们在`custom_button.xml`中定义的规则改变颜色。同时,通过自定义属性,我们还能控制文本颜色和大小,使按钮更加灵活。 在实际开发...
在Android中,每个可以接收输入的View(如Button、EditText)都有一个焦点状态,分为两种:获得焦点(focused)和无焦点(unfocused)。焦点的移动是由系统的焦点管理器自动处理的,但开发者可以通过编程方式控制这...
总结来说,自定义Button点击样式和添加音效能显著提升Android应用的交互体验。通过定义XML选择器,我们可以灵活地控制按钮在不同状态下的外观。同时,结合MediaPlayer类,我们可以轻松实现按钮点击时播放音效的功能...
通过这个“Android应用源码之按键的处理”压缩包,开发者可以学习到如何在实际项目中有效地管理和响应按键事件,提升用户界面的交互体验。实际应用中,可能需要结合具体场景进行优化,例如处理按键重复触发、避免...
为了使TextView看起来像按键,我们需要设置合适的背景资源,比如使用Selector作为背景,Selector可以根据状态(如按下、默认、焦点等)改变颜色或图像。此外,我们还可以添加点击事件监听器,使得当用户触摸TextView...
但是当点击 Button 跳转到下一个 Activity 并返回时,焦点却聚焦到了 VideoView 上,并且代码里强制设置焦点:`Button.requestFocus();`无效。 原因分析: 查看了 VideoView 的源码,发现原因出在初始化上面上。在...
6. **库和工具**:Android社区提供了许多开源库,如`ShapedButton`或`MaterialButton`,它们可以帮助开发者轻松实现自定义按钮样式,同时提供了更多高级特性,如动画效果。 在提供的压缩包文件`AndroidDemoCNG`中,...
在Android开发中,自定义键盘是一项常见的需求,它允许开发者为用户提供更加个性化和高效的操作体验。本项目"自定义键盘(数字、字母、符号自由切换;每个按键背景色自定义;键盘不遮挡编辑框)"正是针对这些需求...
默认情况下,只有`ViewGroup`(如`LinearLayout`、`RelativeLayout`)和某些可以直接交互的`View`(如`Button`、`EditText`)能够获得焦点。 为了使`ImageView`能够获取焦点,我们需要进行以下几步操作: 1. **设置可...
在Android开发中,事件处理是构建用户界面的关键部分,它涉及到与用户交互的各种动作,如点击、滑动、按键等。焦点事件是其中一种特殊类型的事件,尤其在多个可聚焦视图(如EditText、Button等)共存时显得尤为重要...
每个按键通常是一个Button或ImageButton元素,通过设置文字或图片来表示不同的键值。在布局中,我们还需要考虑按键的排列、大小和样式,以确保良好的用户体验。 接着,我们需要在Java代码中处理这些按键的点击事件...
当EditText获得焦点时,显示自定义键盘;失去焦点时,隐藏自定义键盘。可以使用`OnFocusChangeListener`来实现这一功能。 ```xml xmlns:android="http://schemas.android.com/apk/res/android" android:layout_...
如果指定一个颜色的话会把 text 的背景设为该颜色,并且同时和 background 使用时覆盖后者。 - **android:drawableLeft**:在 text 的左边输出一个 drawable,如图片。 - **android:drawablePadding**:设置 text 与...
每个按键可以是一个`Button`或其他可点击的视图,通过设置其背景、文字和点击事件来实现。在`MyKeyboard-master`项目中,可能包含了`keyboard.xml`这样的布局文件,定义了各种按键及其布局样式。 其次,实现键盘...
此外,EditText还可以处理键盘事件,通过实现OnKeyListener接口,监听按键的按下和释放: ```java private class class_name implements OnKeyListener { public boolean onKey(View v, int keyCode, KeyEvent ...
在Android中,事件处理主要涉及用户与界面元素的交互,如点击、长按、焦点改变等。View类提供了多种回调方法来处理这些事件: 1. onTouchEvent(MotionEvent event):处理触摸事件,包括ACTION_DOWN(按下)、ACTION...
每个按键可以是一个独立的Button或自定义的ViewGroup,确保每个键的点击事件能够正确处理。 - 考虑到屏幕适配,可以使用比例值(如dp)来设置键的大小和间距,保证在不同尺寸的设备上显示效果良好。 2. **键盘状态...