0

对不起我的英语......这是谷歌翻译。

我正在关注本教程http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/

我的问题是背景图片。在我的情况下,它不是颜色,而是 SD 卡的图像。工作正常。但是我希望当我单击该项目时该图像变暗并在我释放该项目时恢复其原始颜色

我知道我可以放置另一个用 Photoshop 编辑的图像并按照教程进行操作,但随后将不得不创建许多图像、大量时间和 apk 的重量。也许用几行代码就可以完成

4

3 回答 3

1

假设您使用的是ImageButton,您可以试试这个:

<ImageButton
    android:id="@+id/myImage"
    ...
    android:background="@null"
    android:contentDescription="@string/your_description" />

然后在您的 Java 代码中添加以下内容:

ImageButton button = (ImageButton) findViewById(R.id.myImage);
button.setOnTouchListener(this);

这是使您的图像变暗的代码(在这种情况下变亮,因此取决于您找到正确的颜色):

@Override
public boolean onTouch(View v, MotionEvent event) {
    // Apply the pressed effect on a button
    ImageButton button = (ImageButton) v;
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        button.setColorFilter(Color.argb(150, 155, 155, 155));
        return false;
    } else if (event.getAction() == MotionEvent.ACTION_UP) {
        button.setColorFilter(Color.argb(0, 155, 155, 155));
        return false;
    }
    return super.onTouchEvent(event);
}

试试看,让我知道!

于 2013-07-05T08:42:01.927 回答
0

而不是使用ImageView,尝试使用ImageButton

于 2013-07-05T08:13:17.133 回答
0

这就是它的代码

        Resources res = vi.getResources();
        Bitmap bitmap = BitmapFactory.decodeFile(item.getRutaImagen());
        final BitmapDrawable bd = new BitmapDrawable(res, bitmap);

        // ----------------------------------
        final ImageButton button = (ImageButton) vi.findViewById(R.id.imageButton);
        button.setBackgroundDrawable(bd);
        button.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    button.setColorFilter(Color.argb(150, 155, 155, 155));
                    Log.d("aaa","DOWN");
                } else if (event.getAction() == MotionEvent.ACTION_UP) {
                    button.setColorFilter(Color.argb(0, 155, 155, 155));
                    Log.d("aaa","UP");
                }
                return true;
            }
        });

我得到“DOWN”和“UP”,但图像按钮没有改变......

android:clickable="true"

此代码不扩展 Activity... 扩展 BaseAdapter

于 2013-07-05T09:25:52.307 回答