我添加了一个ImageButton(圆形灰色X的图像,透明背景)。它会动态添加到布局中。
final ImageButton btnx = new ImageButton(this);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
50, 50);
layoutParams.setMargins(14, 14, 14, 14);
l5.addView(btnx, layoutParams);
btnx.setImageResource(R.drawable.buttonx);
这里的问题是,在它下面,有一个灰色按钮。我知道如何隐藏它(使其透明或将我的图像设置为背景)但是当它变成淡蓝色时会产生很好的效果点击。 我如何才能使它仍然具有此效果但灰色按钮不显示在背景上? 或者是否还有其他方法可以使用透明背景从我的灰色X中制作一个按钮并使其在触摸时变为浅蓝色(如通常的按钮那样)并在未触摸/点击时恢复正常颜色?
另外:有没有人知道EditText的标准大小。我需要将这些X与同一行但在不同布局上的某些EditTexts对齐,如果不知道editTexts的确切大小,我就无法做到这一点。 。如果X的大小更小或更大,当我动态添加100行时,它将开始不对齐。
谢谢!
答案 0 :(得分:0)
你应该使用选择器作为按钮状态:
final ImageButton btnx = new ImageButton(this);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
50, 50);
layoutParams.setMargins(14, 14, 14, 14);
l5.addView(btnx, layoutParams);
btnx.setImageResource(R.drawable.buttonx);
另外,将buttonx.xml添加到drawable文件夹中:
<?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/buttonx_pressed"/>
<item android:drawable="@drawable/buttonx_normal"/>
</selector>
将正常和按下状态(“buttonx_pressed”和“buttonx_normal”)的图像也放入可绘制文件夹中。
答案 1 :(得分:0)
图像按钮是两个视图的组合,默认情况下为ImageView和Button。
当你触摸ImageButton时,ImageView保持静态,但默认的Button视图会改变它的状态。
所以要么将ImageButton的背景设置为null,要么将图像资源设置为imageButton的“src”或使用背景选择器。
另外如果您想要图像按钮不应该变为蓝色但应该给出按下的效果,为此你需要有一些图像按钮尺寸的图像
- 一个完全透明的正常状态
- 一个从中心透明但从边界半透明的点击效果。
然后将实际图像设置为背景,并使用这些帧图像制作选择器,并将其设置为ImageButton的src。
对于编辑文本,请拍摄移动屏幕的屏幕截图并进行测量。