这是 2 个屏幕截图,它们的大小不同,因为左边来自模拟器,右边来自设备。应该从设备中取出两者,对此感到抱歉。
两者都使用相同的drawable。
左:布局中设置的背景:
<ImageButton
android:id="@+id/backFromOldCurves"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/backunpressed"
android:paddingLeft="10sp"
android:paddingRight="10sp"
android:src="@drawable/navigationpreviousitem" />
右:在 onTouch on ACTION_UP 中动态设置的背景:
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
v.setBackgroundDrawable(getResources().getDrawable(R.drawable.backpressed));
}
if (event.getAction() == MotionEvent.ACTION_UP) {
v.setBackgroundDrawable(getResources().getDrawable(R.drawable.backunpressed));
onClick(v);
}
return true;
}
在 setBackgroundDrawable 中将 Drawable 转换为 NinePatchDrawable 不起作用。我怎么能解决这个问题?