【安卓学习之常见问题】 透明度设置报错Drawable.mutate()' on a null object reference

█ 【安卓学习之常见问题】 透明度设置报错Drawable.mutate()’ on a null object reference

█ 相关文章:

- 
 ● 【android学习开源项目之BasePopup】BasePopup(PopupWindow)进行二次封装
 ● 【android学习开源项目之AndroidAutoSize】AndroidAutoSize和DialogFragment的适配

█ 读前说明:

- 
 ● 本文通过学习别人写demo,学习一些课件,参考一些博客,’学习相关知识,如果涉及侵权请告知
 ● 本文只简单罗列相关的代码实现过程
 ● 涉及到的逻辑以及说明也只是简单介绍,主要当做笔记,了解过程而已

█ 我的问题

● 想要设置,爆出如下问题:

Attempt to invoke virtual method ‘android.graphics.drawable.Drawable android.graphics.drawable.Drawable.mutate()’ on a null object reference

【安卓学习之常见问题】 透明度设置报错Drawable.mutate()' on a null object reference_第1张图片

● 代码如下:

				 private ImageView mItemImg;
				 private TextView mItemTitle;
				 
				 mItemImg.getBackground().mutate().setAlpha(240);
                 mItemTitle.getBackground().mutate().setAlpha(10);

█ 解决问题:

● 网上搜索测试,如果是单纯的TextView,可以使用如下方法:

        mItemTitle.setTextColor(mItemTitle.getTextColors().withAlpha(20));// 透明
        mItemTitle.setTextColor(mItemTitle.getTextColors().withAlpha(255));// 不透明

● 如果是LinearLayout或者ImageView,可以使用如下方法:

    // 设置不可选效果
    private void setCheckableAlpha(float fromAlpha, float toAlpha) {
        AlphaAnimation alpha= new AlphaAnimation(fromAlpha, fromAlpha);
        alpha.setDuration(0);
        alpha.setFillAfter(true);
        mItemViewLL.startAnimation(alpha);
    }

    setCheckableAlpha(0.3F, 0.3F)// 透明
    setCheckableAlpha(1.0F, 1.0F)// 不透明

█ 相关资料:

● 1.2019-08-08 Android 设置view透明度(Alpha)包括子view(测试没效果)
 ● 2.2018-03-27 android Drawable.mutate()的使用
 ● 3.2014-07-08 android imageView背景透明度的设置(测试第二种方法可用)
 ● 4.2019-08-24 猿问:如何在Android中为View设置不透明度(Alpha)(提出setTextColor(getTextColors().withAlpha(alpha))的方案)

转载请注明出处:

https://blog.csdn.net/ljb568838953/article/details/104007182

你可能感兴趣的:(常见问题汇集,android学习)