我是java / android的新手,正在制作测试应用。它有ImageButtons,当点击时暂时切换到不同的图像。使用
裁剪原稿android:adjustViewBounds="true"
android:scaleType="centerCrop"
<_>在activity_main.xml中
问题是第二张图片没有裁剪,因此按钮太大了。有谁知道我怎么解决这个问题?下面是其中一个按钮的示例:
public void onClick(View v) {
//switch to second img
butt2.setImageResource(R.drawable.newimg);
//switch back to first after pause
new Handler().postDelayed(new Runnable() {
public void run() {
butt2.setImageResource(R.drawable.orig);
}
}, 500L);
}
});
答案 0 :(得分:2)
我使用了以下
int normal[] = { R.drawable.num0, R.drawable.num1, R.drawable.num2,
R.drawable.num3, R.drawable.num4, R.drawable.num5,
R.drawable.num6, R.drawable.num7, R.drawable.num8,
R.drawable.num9, R.drawable.del, R.drawable.go };
int pressed[] = { R.drawable.num0_clicked, R.drawable.num1_clicked,
R.drawable.num2_clicked, R.drawable.num3_clicked,
R.drawable.num4_clicked, R.drawable.num5_clicked,
R.drawable.num6_clicked, R.drawable.num7_clicked,
R.drawable.num8_clicked, R.drawable.num9_clicked,
R.drawable.del_clicked, R.drawable.go_clicked };
StateListDrawable sld;
for (int i = 0; i < 12; i++) {
sld = new StateListDrawable();
sld.addState(new int[] { android.R.attr.state_pressed },
getResources().getDrawable(pressed[i]));
sld.addState(new int[] {}, getResources().getDrawable(normal[i]));
btns[i].setImageDrawable(sld);
}
答案 1 :(得分:0)
还有另一种尝试这种方法的方法,如果你想要点击按钮,它的背景应该改变,当你释放它时,背景会变成前一个。
这可以通过以下方式实现
现在,您要在main.xml文件中显示为活动以及声明按钮标记的位置,添加语句
机器人:背景= “@绘制/ customDefaultBackground”
就像
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/customDefaultBackground" />
现在添加一个选择器标记类型的xml文件,并将其命名为customDefaultBackground.xml,打开该文件并在其内容中添加以下内容: -
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@drawable/onPressBackground" ></item>
<item android:drawable="@drawable/defaultBackground"></item>
</selector>
将android:state_pressed设置为true的项标签表示当用户点击按钮并按住它时,将显示backgroundOnPressed版本,否则它将显示默认背景。