[英]change button image onClick android
我有一個按鈕和兩個圖像,我希望按鈕的默認圖像是btn1.jpg ,單擊按鈕時,圖像應立即更改為btn2.jpg , 3秒后 ,它應再次恢復為btn1。 jpg 。 請告訴我如何實現這一目標?
package com.example.btn;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
private View ButtonName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void yolo(View v) {
switch (v.getId()) {
case R.id.buttonName:
ButtonName.setBackgroundResource(R.drawable.btn2);
//Disable click on Button
ButtonName.setEnabled(false);
try {
Thread.sleep(3000);
}
catch (Exception e) {
e.printStackTrace();
}
ButtonName.setBackground(getResources().getDrawable(R.drawable.btn1));
break;
case default:
ButtonName.setBackgroundResource(R.drawable.btn1);
}
}
}
您必須將OnClick方法中的按鈕背景圖像更改為btn2.jpg 。 之后,您必須啟動計時器倒計時3秒,然后再將按鈕圖像更改為btn1.jpg
private final int interval = 3000;
private Handler handler = new Handler();
private Runnable runnable
btn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
btn.setBackground(getResources().getDrawable(R.drawable.btn2))
//Start runnable after 3 seconds
handler.postDelayed(runnable, interval);
}
});
runnable = new Runnable(){
public void run() {
btn.setBackground(getResources().getDrawable(R.drawable.btn1))
}
};
終於弄清楚了自己!
在xml中設置按鈕的背景
使用此代碼:
package com.example.btn; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.view.View; public class MainActivity extends Activity { Handler mHandler; // global instance Runnable your_runnable; // global instance @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void yolo(final View view) { if (view == view) { view.setBackgroundResource(R.drawable.btn1); mHandler = new Handler(); your_runnable = new Runnable() { @Override public void run() { view.setBackgroundResource(R.drawable.btn2); } }; mHandler.postDelayed(your_runnable, 3000L);// 3sec timer } } }
好的,首先,你有一個錯誤:
ButtonName.setBackgroundResource(getresources().getDrawable(R.drawable.btn2));
然后,在按鈕上添加clickListener:
private Thread t = new Thread(new Runnable {
@Override
public void run() {
ButtonName.setBackgroundResource(getresources().getDrawable(R.drawable.btn2));
//Disable click on Button
ButtonName.setEnabled(false);
try {
Thread.sleep(3000);
}
catch (Exception e) {
e.printstacktrace();
}
ButtonName.setBackgroundResource(getresources().getDrawable(R.drawable.btn1));
}
});
ButtonName.setOnClickListener (new OnClickListener (
@Override
public void onClick(View v) {
t.start();
}
));
我想這就是你想要的
這可能對你有用!!
public class MainActivity extends Activity {
Button button;
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.yourbuttonid);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
button.setBackgroundResource(getresources().getDrawable(R.drawable.btn1));
handler=new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
button.setBackgroundResource(getresources().getDrawable(R.drawable.btn2));
}
}, 3000);
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.