Change source image for image view when pressed

前端 未结 16 516
闹比i
闹比i 2020-12-08 19:53

I have a scroll view with lots of image buttons. I want to change the image for an image button when it\'s pressed. The thing is that I want the image to remain until anothe

相关标签:
16条回答
  • 2020-12-08 20:44

    if you have an ImageView orImageButton and want to change image of that when its pressed, you can refresh activity for any pressed:

     fav.setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
    
                int isFavor = c.getInt(c.getColumnIndex("isFavor"));
                if(isFavor == 1){
                    db.execSQL("update content set isFavor=0 where ID="+idxx+";");
                    fav.setImageResource(R.drawable.favnot_ic);
    
                    Toast.makeText(context.getApplicationContext(),"item cleaned",Toast.LENGTH_LONG).show();
                    activity.finish();
                    activity.overridePendingTransition(0, 0);
                    context.startActivity(activity.getIntent());
                }
                else{
                    db.execSQL("update content set isFavor=1 where ID=" + idxx + ";");
                    fav.setImageResource(R.drawable.fav_ic);
                    Toast.makeText(context.getApplicationContext(),"Item added...",Toast.LENGTH_LONG).show();
                    activity.finish();
                    activity.overridePendingTransition(0, 0);
                    context.startActivity(activity.getIntent());
                }
            }
        });
    
    0 讨论(0)
  • 2020-12-08 20:44
    Demo_button.setImageResource(R.drawable.secondimage)
    
    //Demo_button is your event holder (the button or imageview or bitmap file which contains the image) and secondimage is your image (drawable) file, without any complications.
    

    This does the trick.

    0 讨论(0)
  • 2020-12-08 20:45

    try below code :-

    boolean flag=false;
    ImageButton btn = (ImageButton)findViewById(R.id.btn);
    
    // when you click this demo button
    btn .setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        if (!flag) {
            btn.setBackgroundResource(R.drawable.imageonpress);
            flag=true;  
        }
        else {
              btn.setBackgroundResource(R.drawable.image);
              flag=false;
        }
      }
    }
    
    0 讨论(0)
  • 2020-12-08 20:46

    The shortest way to achieve it, using only XML (no Java code):

    Save the following as drawable/image_pressable.xml next to the two images:

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/image_pressed" android:state_pressed="true" />
        <item android:drawable="@drawable/image_regular" />
    </selector>
    

    then reference it as:

    <ImageView android:src="@drawable/image_pressable" />
    

    Tip:

    Using state_pressed instead of state_activated allows the image to be changed when pressing it with the fingers. state_activated could be useful, if you want to dynamically change the status of the ImageView, but not if you just want it to behave different when pressed, without any code involved. Which is exactly what it was asked in the question of this topic.

    0 讨论(0)
  • 2020-12-08 20:47
    ImageButton Demo_button = (ImageButton)findViewById(R.id.firstimage);
    ImageButton second_button = (ImageButton)findViewById(R.id.secondimage);
    
    // when you click this demo button
    Demo_button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
        Demo_button.setImageResource(R.drawable.secondimage);
        second_button.setImageResource(R.drawable.firstimage);
       }
    }
    
    second_button.setOnClickListener(new OnClickListener() {
       public void onClick(View v) {
          Demo_button.setImageResource(R.drawable.firstimage);
          second_button.setImageResource(R.drawable.secondimage);
       }
    }
    

    I Hope u want to like that Right???

    0 讨论(0)
  • 2020-12-08 20:47

    Although it's too late to answer. But someones may get help from this answer.

    It's working like charm -

    circularImageView.setOnTouchListener(new View.OnTouchListener() {
    
                public boolean onTouch(View v, MotionEvent event) {
                    switch (event.getAction()) {
                        case MotionEvent.ACTION_DOWN:
                            circularImageView.setImageResource(R.drawable.profile_edit_photo);
                            break;
                        case MotionEvent.ACTION_UP:
                            circularImageView.setImageResource(R.drawable.photo_male_8);
                            break;
                        case MotionEvent.ACTION_MOVE:
                            Log.i("ImageViewEvent", "Action_Move_Called");    
                            break;
                    }
                    return true; // Note: This return value must need to be true if you want to call MotionEvent.ACTION_UP: action. 
                }
    
            });
    
    0 讨论(0)
提交回复
热议问题