为了账号安全,请及时绑定邮箱和手机立即绑定

canvas.drawBitmap(mIconBitmap, null, mIconRect, null)这句报空指针

canvas.drawBitmap(mIconBitmap, null, mIconRect, null)这个语句在Eclipse上可以不报错,在Android Studio上会报错诶,求老师指导??

正在回答

10 回答

AS在引用自定义布局的时候这样写  xmlns:hyman="http://schemas.android.com/apk/res-auto"

你可以测试你的值,canvas.drawBitmap(mIconBitmap,null, mIconRect,null);
在这语句中其实mIconBitmap是为空的 并没有拿到你自定义的任何控件属性;

/**
* 获取自定义属性的值
*
* @param context
* @param attrs
* @param defStyleAttr
*/
public ChangeColorIconWithText(Context context, AttributeSet attrs,
     int defStyleAttr)
{
  super(context, attrs, defStyleAttr);

  TypedArray a = context.obtainStyledAttributes(attrs,
        R.styleable.ChangeColorIconWithText);
  Log.e("测试","a:"+a);
  int n = a.getIndexCount();
  Log.e("测试","a.getIndexCount():"+a.getIndexCount());
  for (int i = 0; i < n; i++)
  {

int attr = a.getIndex(i);
Log.e("测试","attr:"+attr);

.......

在进入for 之前 所有的值都是 0 ;你自己可以可以测试。

至于说改attrs 里面color;我倒是改了,但是 最后我是测到我并没有取到值后我改了我的引用,最后拿到值了就不报错了

06-21 10:26:08.459 24711-24711/com.weixin.weixin_liu E/测试: attr:1
06-21 10:26:08.460 24711-24711/com.weixin.weixin_liu E/测试: attr:2
06-21 10:26:08.460 24711-24711/com.weixin.weixin_liu E/测试: attr:3
06-21 10:26:08.481 24711-24711/com.weixin.weixin_liu E/测试: a:[0, 0, 1, 0, 0, 0, 3, 165, 5, 2130903040, 0, 160, 3, 20, -1, 0, 0, 0, 5, 3074, -1, 0, 0, 0, 0, 0, -1, 0, 1073746944, 0, 0, 0, -1, 0, 1073746944, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 18, 0, 5, 2131427416, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 1281, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 16, 250, -1, 0, 1073746944, 0, 16, 400, -1, 0, 1073746944, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0]
06-21 10:26:08.481 24711-24711/com.weixin.weixin_liu E/测试: a.getIndexCount():3



0 回复 有任何疑惑可以回复我~

我也这个问题?

0 回复 有任何疑惑可以回复我~

我刚刚解决了问题了,是什么刚开始你的attr里面的属性icon,color属性名重复了,所以我改了,但是我的xml文件的属性名没有改,结果改过来就好了。

1 回复 有任何疑惑可以回复我~
#1

汕大小土豆

很有用
2017-02-28 回复 有任何疑惑可以回复我~

我也遇到同样的问题了,求解答?

0 回复 有任何疑惑可以回复我~

一样的问题,查了应该是mIconBitmap为Null.

用AS就会有这个问题,谁知道怎么解决?

0 回复 有任何疑惑可以回复我~

一样的问题解决了么

0 回复 有任何疑惑可以回复我~

还是不行啊

0 回复 有任何疑惑可以回复我~

是mIconRect没有初始化

mIconRect.contains(left, top, left+iconWidth, top+iconWidth);改成

mIconRect = new Rect(left, top, left+iconWidth, top+iconWidth);就好了

0 回复 有任何疑惑可以回复我~

同问  那个试过了 不行喔 @mjttss

0 回复 有任何疑惑可以回复我~

TypedArray a = context.obtainStyledAttributes(attrs,R.styleable.ChangeColorIconWithTextView);  改成这样获取TypedArray

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
微信6.0主界面
  • 参与学习       58953    人
  • 解答问题       174    个

本课程将讲解微信6.0主界面的实现方法,微信5.2.1后续课程

进入课程

canvas.drawBitmap(mIconBitmap, null, mIconRect, null)这句报空指针

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信