更新android中的可绘制图像运行时

时间:2017-10-04 04:42:36

标签: java android drawable

我正在尝试更新在弹出窗口中动态创建的android图像 onClick ,如果我单击图像,图像必须用较小尺寸的图像替换,它将重定向到另一个加载片段后的片段,资源必须变为正常大小,我尝试使用以下代码。

  if (MenuButton[0].getId() == v.getId()) {                
        MenuButton[0].setBackgroundResource(R.drawable.Small_menu_general); //updating here
        myLog.v(TAG, Thread.currentThread().getStackTrace()[2].getLineNumber(), "Select Menu", "General Setting");
        Product_Location(Vars.Menu_General);
        GlobalClass.fragment = new Run_Screen();
        getSupportFragmentManager().beginTransaction().setCustomAnimations(R.anim.fade_in, 0, 0, R.anim.fade_out).replace(R.id.fragment_place, GlobalClass.fragment).commit();
        HideMainMenu();
    } 

并在HideMainMenu()中我试图将其更新为正常

public void HideMainMenu() {
  Menu_Frame_1.clearAnimation();
  Menu_Frame_1.startAnimation(Menu_Hide_Anim);
  Menu_Frame_2.clearAnimation();
  Menu_Frame_2.startAnimation(Menu_Hide_Anim);
  Main_Menu.startAnimation(MenuHideRotation);
  MenuButton[0].setBackgroundResource(R.drawable.Normal_menu_general); //retaining to normal here
}

1 个答案:

答案 0 :(得分:1)

你可以用state来实现这个

StateListDrawable states = new StateListDrawable();
 states.addState(new int[] {android.R.attr.state_pressed},
 getResources().getDrawable(R.drawable.Small_menu_general));
 MenuButton[0].setImageDrawable(states);