Android 如何隐藏光晕效果?

Android 如何隐藏光晕效果?,android,onclick,imageview,glow,Android,Onclick,Imageview,Glow,辉光效果很好。我的疑问是如何隐藏辉光效果?如果我单击我的imageview,那时候我只想显示我的发光效果,请告诉我如何在单击时隐藏和显示发光效果 代码: 当前屏幕截图: 一个更简单的方法是使用 创建两个图像-一个用于正常状态,一个用于按下状态(带辉光)。在res/drawable/button_drawable.xml中使用此选项: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://sc

辉光效果很好。我的疑问是如何隐藏辉光效果?如果我单击我的imageview,那时候我只想显示我的发光效果,请告诉我如何在单击时隐藏和显示发光效果

代码:

当前屏幕截图:


一个更简单的方法是使用

创建两个图像-一个用于正常状态,一个用于按下状态(带辉光)。在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>

更简单的方法是使用

创建两个图像-一个用于正常状态,一个用于按下状态(带辉光)。在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>

您可以这样为
setMaskFilter()
设置null

paint.setMaskFilter(null);
您只需设置
paint.setMaskFilter(新的BlurMaskFilter(glowRadius,Blur.OUTER))


为此,您需要将绘制对象保留在应用程序范围内,以便此绘制对象可以在其他类或活动中访问到任何您想要的位置,或者您可以将标志设置为true,然后显示发光效果和false该标志设置为nothing(默认设置)

您可以通过这种方式将
setMaskFilter()
设置为null

paint.setMaskFilter(null);
您只需设置
paint.setMaskFilter(新的BlurMaskFilter(glowRadius,Blur.OUTER))


为此,您需要将绘制对象保留在应用程序范围内,以便此绘制对象可以在其他类或活动中访问到您想要的任何位置,或者您可以将标志设置为true,然后显示发光效果和false该标志设置为nothing(默认设置)

设置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);
}}

设置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);
}}

android:drawable=“@drawable/image\u normal”,android:drawable=“@drawable/image\u pressed”错误如上所述,创建这些图像(image\u normal.png和image\u pressed.png)并添加到您的drawable文件夹中。请注意更新的XML。类型ImageView中的方法setImageDrawable(Drawable)不适用于参数(int)错误行:((ImageView)findViewById(R.id.bmpImg)).setImageDrawable(R.Drawable.button_Drawable);请参阅更新的代码:
((ImageView)findViewById(R.id.bmpImg)).setImageDrawable(getResources().getDrawable(R.drawable.button_drawable))android:drawable=“@drawable/image\u normal”,android:drawable=“@drawable/image\u pressed”错误如上所述,创建这些图像(image\u normal.png和image\u pressed.png)并添加到您的drawable文件夹中。请注意更新的XML。类型ImageView中的方法setImageDrawable(Drawable)不适用于参数(int)错误行:((ImageView)findViewById(R.id.bmpImg)).setImageDrawable(R.Drawable.button_Drawable);请参阅更新的代码:
((ImageView)findViewById(R.id.bmpImg)).setImageDrawable(getResources().getDrawable(R.drawable.button_drawable))谢谢,还有一个疑问是如何在我的图像视图中使用onclick事件谢谢,还有一个疑问是如何在我的图像视图中使用onclick事件是什么?R.id.bmpImg。你想描述一下最后一行吗@海德先生,没什么,我的布局中有imageview,所以我通过id使用imageview。仅此而已。这是另一种格式,您可以同时使用这两种格式1。ImageView img=(ImageView)findViewById(R.id.bmpImg);2.img.setImageBitmap(bmp);这是怎么一回事?R.id.bmpImg。你想描述一下最后一行吗@海德先生,没什么,我的布局中有imageview,所以我通过id使用imageview。仅此而已。这是另一种格式,您可以同时使用这两种格式1。ImageView img=(ImageView)findViewById(R.id.bmpImg);2.img.setImageBitmap(bmp);