android 在Button 的onDraw中加上invalidate()会导致背景缩放失败
2016-01-12 17:37
501 查看
android 在Button 的onDraw中加上invalidate()会导致背景缩放失败,如果需要不断刷新则需要手动设置背景大小
protected void onDraw(Canvas canvas) { super.onDraw(canvas); if(getBackground()!=null) { background=getBackground(); setBackground(null); } background.setBounds(0, 0, getWidth(), getHeight()); Bitmap bitmap= drawableToBitmap(background); Matrix matrix=new Matrix(); matrix.postScale(getWidth()*1.0f/background.getIntrinsicWidth(),getHeight()*1.0f/background.getIntrinsicHeight()); Bitmap scaledBitmap=Bitmap.createBitmap(bitmap, 0, 0, background.getIntrinsicWidth(), background.getIntrinsicHeight(),matrix,true); canvas.drawBitmap(scaledBitmap, 0, 0, paint); invalidate(); }
相关文章推荐
- Android 实现布局动态加载
- android v4,v7-RecyclerView基于23的源码
- Android 高亮指示层提示
- Android 讲解:布局
- Lowen 基于monkeyrunner的android应用的自动化测试
- Android下载服务器资源文件(支持断点续传)
- 读《Android开发艺术探索》---View滑动冲突
- Android Studio报错:Could not download junit.jar
- Android Studio上方便使用butterknife注解框架的偷懒插件Android Butterknife Zelezny
- 监听ScrollView的滚动
- Android ListView的A-Z字母排序和过滤搜索功能
- Android客户端注入及清除Cookie
- Android制作粒子爆炸特效
- 美团Android DEX自动拆包及动态加载简介
- Android 支付宝接入时常见的问题
- Android Gradle Plugin指南(一)
- Android开发问题汇总(持续更新)
- Android APK中 调用系统工具
- Android studio 集成git详细的步骤和git上传项目到服务器中
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系