0

我添加了一个 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与同一行但布局不同的一些EditText对齐,如果不知道editText的确切大小,我就无法做到这一点..如果X 的大小更小或更大,当我动态添加 100 行时,它将开始不对齐。

谢谢 !

4

2 回答 2

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”)的图像也放入可绘制文件夹中。

于 2013-06-22T07:25:21.373 回答
0

图像按钮是两个视图的组合,默认情况下是 ImageView 和 Button。
当您触摸 ImageButton 时,ImageView 保持静态,但默认的 Button 视图会更改其状态。
因此,要么将 ImageButton 的背景设置为 null,并将图像资源设置为 imageButton 的“src”,要么使用背景选择器。

此外,如果您希望图像按钮不应该变成蓝色,而是应该给出按下效果,因为您需要一些图像按钮大小的图像
- 一张在正常状态下完全透明
- 一张从中心透明但从边框半透明以获得点击效果。
然后将实际图像设置为背景,并用这些帧图像做一个选择器,并将其设置为 ImageButton 的 src。

对于编辑文本,请对您的移动屏幕进行屏幕截图并进行测量。

于 2013-06-22T08:25:06.413 回答