最近在写一个banner框架遇到的问题 记录一下


ShapeDrawable   generalDrawable = new ShapeDrawable;

generalDrawable.getPaint().setAntiAlias(true);

generalDrawable.getPaint().setStyle(Paint.Style.FILL);generalDrawable.getPaint().setColor(indicatorUnFocusColor);image.setImageDrawable(generalDrawable) 这样做的是不能显示的
image.setBackgroundDrawable(generalDrawable) 这样是可以的
查看源码的  imageview 会去获取drawable的getIntrinsicHeight() =-1;
//  源码
d.setVisible(getVisibility() == VISIBLE, true);d.setLevel(mLevel);mDrawableWidth = d.getIntrinsicWidth();mDrawableHeight = d.getIntrinsicHeight();applyImageTint();applyColorMod();

当然此时无法显示;

设置宽高就能正常显示了
generalDrawable.setIntrinsicHeight(20);generalDrawable.setIntrinsicWidth(20);focusDrawable.setIntrinsicHeight(20);focusDrawable.setIntrinsicWidth(20);
   
而在设置backgrounddrawable时 
   
会自动把drawable 放大到 imageview 到width-padding和 height-padding然后去设置
所以是可以设置的。
   
   
android drawable 博大精深 是androider易于忽略的地方。

更多相关文章

  1. Android 个人记账程序源码
  2. android中Handler源码的分析文章
  3. 【小超_Android】2015最流行的android组件、工具、框架大全(后续)
  4. Android中ButterKnife框架
  5. android camera 源码分析
  6. Android的pagerAdapter源码,在线查看网址。

随机推荐

  1. 写给初学者,Android(安卓)AIDL必看内容
  2. android教父高焕堂 成都之行
  3. android软键盘的隐藏以及Edittext的焦点
  4. Android客户端上开发人人客户端系列教程
  5. Android中String资源文件的format方法
  6. android的init.rc文件的语法
  7. Android(安卓)应用程序之间内容分享详解(
  8. LeadTools Android(安卓)入门教学——运
  9. Android(安卓)Afinal使用与总结
  10. Android(安卓)本地推送消息到通知栏 Noti