как скрыть эффект свечения?

Эффект свечения работает нормально. я сомневаюсь, как скрыть эффект свечения? если я нажму на свое изображение, только в этот раз я хочу показать свой эффект свечения, пожалуйста, как скрыть и показать эффект свечения при нажатии.

код:

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // An added margin to the initial image
        int margin = 24;
        int halfMargin = margin / 2;

        // the glow radius
        int glowRadius = 16;

        // the glow color
        int glowColor = Color.rgb(0, 192, 255);

        // The original image to use
        Bitmap src = BitmapFactory.decodeResource(getResources(),
                R.drawable.test);

        // extract the alpha from the source image
        Bitmap alpha = src.extractAlpha();

        // The output bitmap (with the icon + glow)
        Bitmap bmp = Bitmap.createBitmap(src.getWidth() + margin,
                src.getHeight() + margin, Bitmap.Config.ARGB_8888);

        // The canvas to paint on the image
        Canvas canvas = new Canvas(bmp);

        Paint paint = new Paint();
        paint.setColor(glowColor);

        // outer glow
        paint.setMaskFilter(new BlurMaskFilter(glowRadius, Blur.OUTER));
        canvas.drawBitmap(alpha, halfMargin, halfMargin, paint);

        // original icon
        canvas.drawBitmap(src, halfMargin, halfMargin, null);
        setContentView(R.layout.activity_main);

        ((ImageView) findViewById(R.id.bmpImg)).setImageBitmap(bmp);

    }
}

настоящий снимок экрана:

введите здесь описание изображения


person balaji    schedule 05.10.2012    source источник
comment
Что это? R.id.bmpImg . и не могли бы вы сказать какое-то описание последней строки?!   -  person Dr.jacky    schedule 23.01.2013
comment
@Mr.Hyde это ничего, у меня есть изображение в моем макете, поэтому я использую это изображение через идентификатор. это все. Это еще один формат, который вы можете использовать в обоих форматах 1. ImageView img=(ImageView)findViewById(R.id.bmpImg); 2.img.setImageBitmap(bmp);   -  person balaji    schedule 23.01.2013


Ответы (3)


установите onclicklistener и реализуйте этот код:

.setOnClickListener(clicklistener);


private OnClickListener backListener = new OnClickListener() {
        public void onClick(View v) {
    // An added margin to the initial image
        int margin = 24;
        int halfMargin = margin / 2;

        // the glow radius
        int glowRadius = 16;

        // the glow color
        int glowColor = Color.rgb(0, 192, 255);

        // The original image to use
        Bitmap src = BitmapFactory.decodeResource(getResources(),
                R.drawable.test);

        // extract the alpha from the source image
        Bitmap alpha = src.extractAlpha();

        // The output bitmap (with the icon + glow)
        Bitmap bmp = Bitmap.createBitmap(src.getWidth() + margin,
                src.getHeight() + margin, Bitmap.Config.ARGB_8888);

        // The canvas to paint on the image
        Canvas canvas = new Canvas(bmp);

        Paint paint = new Paint();
        paint.setColor(glowColor);

        // outer glow
        paint.setMaskFilter(new BlurMaskFilter(glowRadius, Blur.OUTER));
        canvas.drawBitmap(alpha, halfMargin, halfMargin, paint);

        // original icon
        canvas.drawBitmap(src, halfMargin, halfMargin, null);
}}
person Karthikeyan Karthik    schedule 11.10.2012

вы можете установить null для setMaskFilter() таким образом

paint.setMaskFilter(null);

и вам нужно просто установить paint.setMaskFilter(new BlurMaskFilter(glowRadius, Blur.OUTER));

для этого вам нужно сохранить объект рисования для области приложения, чтобы этот объект рисования мог получить доступ к другому классу или действию, где бы вы ни захотели, или вы можете установить флаг для true, затем показать эффект свечения и false, флаг ничего не устанавливает (по умолчанию)

person Pratik    schedule 05.10.2012
comment
спасибо и еще одно сомнение, как использовать событие onclick для просмотра моего изображения - person balaji; 05.10.2012

Проще всего это сделать с помощью StateListDrawable. .

Создайте два изображения — одно для нормального состояния и одно для нажатого состояния (со свечением). Используйте это в файле res/drawable/button_drawable.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@drawable/image_normal"
        android:state_enabled="true"/>
    <item
        android:drawable="@drawable/image_pressed"
        android:state_pressed="true"/>
</selector>

и используйте его как нарисованную кнопку:

((ImageView) findViewById(R.id.bmpImg)).setImageDrawable(getResources().getDrawable(R.drawable.button_drawable));
person Rajesh    schedule 05.10.2012
comment
android:drawable=@drawable/image_normal, android:drawable=@drawable/image_pressed ошибка - person balaji; 05.10.2012
comment
Как уже упоминалось, создайте эти изображения (image_normal.png и image_pressed.png) и добавьте в папку с возможностью рисования. Обратите также внимание на обновленный XML. - person Rajesh; 05.10.2012
comment
Метод setImageDrawable(Drawable) в типе ImageView неприменим для аргументов (int) строки ошибки: ((ImageView) findViewById(R.id.bmpImg)).setImageDrawable(R.drawable.button_drawable); - person balaji; 05.10.2012
comment
См. обновленный код: ((ImageView) findViewById(R.id.bmpImg)).setImageDrawable(getResources().getDrawable(R.drawable.button_drawable)); - person Rajesh; 05.10.2012