2013年3月5日火曜日

ImageButtonを押したら背景色を変える


 View pushed = null;
//ボタン表示
private void cateBtn(ImageButton btn,int cate, String cateImg)
{
int id= getResources().
getIdentifier(cateImg, "drawable", getPackageName());  

btn.setLayoutParams(new LinearLayout.LayoutParams((int) (90.0*hw*0.9),(int) (114.0*hh*0.9)));
btn.setImageResource(id);
btn.setAdjustViewBounds(true);
btn.setPadding(0,0,0,0);
btn.setTag(cate);
layout.addView(btn);

//タッチされたら背景色を変える(前のボタンは戻す)
btn.setOnTouchListener(new View.OnTouchListener()
{
   public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN)
{
   if (pushed != null) pushed.setBackgroundColor(Color.GRAY); //戻す
   v.setBackgroundColor(Color.YELLOW);
}
if(event.getAction() == MotionEvent.ACTION_UP)
{
   //v.setBackgroundColor(Color.GRAY);
}
return false;
}
});

//ボタンが押されたとき
btn.setOnClickListener(new OnClickListener(){
   public void onClick(View view){
  if (pushed != null) pushed.setBackgroundColor(Color.GRAY); //戻す
  view.setBackgroundColor(Color.YELLOW);
  pushed = view;
   }
});
}