2

ビットマップを強調表示する方法は?グーグルプレイのように。

ここに画像の説明を入力してくださいここに画像の説明を入力してください

私の画像はサーバーにあるので、この効果を出すために2つの画像をダウンロードしたくありません。

私が試したこと:

レイヤーを使おうとしていますが、透明なハイライト効果が得られません。ビットマップはに設定されていImagebuttonます。

たぶん、キャンバスは機能し、明るい色で描画可能な透明を作成します。いくつかのコードを試しましたが、これを処理する方法がわからないため、機能しません。

BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap);

                    Drawable[] layers = new Drawable[2];
                    layers[0] = bitmapDrawable;
                    layers[1] = r.getDrawable(R.drawable.default_button_pressed);
                    LayerDrawable layerDrawable = new LayerDrawable(layers);
                    imageView.setImageDrawable(layerDrawable);

default_button_pressed

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle">
    <corners android:radius="3dp" />
    <gradient android:endColor="#FFFFFF" android:startColor="#ccffff" android:angle="90" />
    <stroke android:width="1dp" android:color="#33364252" />

</shape>
4

2 に答える 2

2

使用してみてくださいColorFilter

Imagebutton.setColorFilter(0x808fd2ea);
于 2013-01-07T17:11:12.053 に答える
1

との方法をOnTouchListener使用して行うのは簡単setColourFilterImageButton

  ImageButton aButton = (ImageButton) findViewById(R.id.MY_IMAGEBUTTON_ID);
   aButton.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent me) {
            ImageButton button = (ImageButton)v;
            if (me.getAction() == MotionEvent.ACTION_DOWN) {
                button.setColorFilter(Color.BLUE);
                return true;
            } else if (me.getAction() == MotionEvent.ACTION_UP) {
                button.setColorFilter(null);
                return true;
            }
            return false;
        }

    });
于 2013-01-07T17:19:04.983 に答える