簡體   English   中英

更改按鈕圖像onClick android

[英]change button image onClick android

我有一個按鈕和兩個圖像,我希望按鈕的默認圖像是btn1.jpg ,單擊按鈕時,圖像應立即更改為btn2.jpg3秒后 ,它應再次恢復為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)) 
    }
};

終於弄清楚了自己!

  1. 在xml中設置按鈕的背景

  2. 使用此代碼:

     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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM