Android ImageButton实现按下效果

为了提高用户体验,当用户有按下按钮和释放按钮切换ImageButton的图片。

1)效果图如下

1. 没有单击ImageButton


2. 单击ImageButton


2)关键代码如下

package com.example.androidtestapp;


import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.*;
import android.view.*;


public class MainActivity extends Activity {


private ImageButton imageButton1=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageButton1=(ImageButton)findViewById(R.id.imageButton1);
imageButton1.setOnTouchListener(new ImageButton.OnTouchListener(){
public boolean onTouch(View view, MotionEvent event){
if(event.getAction()==MotionEvent.ACTION_DOWN){
imageButton1.setImageResource(R.drawable.iphone_on);
}
else if(event.getAction()==MotionEvent.ACTION_UP){
imageButton1.setImageResource(R.drawable.iphone_off);
}
return false;
}
});
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}


}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio中,实现ImageButton的图片切换通常涉及到使用`setImageResource()`方法或者结合`ImageView`和`Animation`或`Transition`来动态更改图片。以下是一个简单的步骤说明: 1. **设置布局**: 首先,在XML布局文件中创建一个`ImageButton`,并为其设置一个基础的图片资源作为初始状态: ```xml <ImageButton android:id="@+id/image_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/image1" /> ``` 2. **监听点击事件**: 在对应的Activity或Fragment的Java/ Kotlin代码中,为ImageButton添加一个点击监听器: ```java ImageButton ImageButton = findViewById(R.id.image_button); ImageButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 图片切换逻辑 } }); ``` 3. **图片切换逻辑**: 在`onClick`方法中,你可以使用`setImageResource()`来切换图片,或者定义多个`Bitmap`对象,并用`startAnimation()`或`Transition`进行动画效果: - **使用`setImageResource()`**: ```java int[] images = {R.drawable.image1, R.drawable.image2, R.drawable.image3}; // 你的图片资源ID数组 int currentIndex = 0; ImageButton.setImageResource(images[currentIndex]); ``` - **使用`Animation`**: ```java AnimationDrawable animation = new AnimationDrawable(); // 添加多个图片到动画Drawable animation.addFrame(BitmapFactory.decodeResource(getResources(), images), 1000); animation.addFrame(BitmapFactory.decodeResource(getResources(), images), 1000); // 更多帧... animation.start(); ImageButton.setImageDrawable(animation); ``` - **使用`Transition`(API 21及以上)**: ```java TransitionManager.beginDelayedTransition(imageButton); ImageButton.setImageResource(images); // 或者使用Transition API设置过渡效果 ``` 4. **考虑性能**: 如果有大量图片或者频繁切换,可能需要考虑使用`ArrayAdapter`配合`AdapterView`,这样可以减少内存消耗。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值