android版本不同导致图像缩放出错

yuli 2011-01-13 08:34:33
我的主要代码如下

程序在2.2下运行正常

但在1.6 和2.1下运行缩放时出错,不知道为什么



class DrawView extends View {


Bitmap bmpOrg= null;


public DrawView(Context context) {
super(context);
// TODO Auto-generated constructor stub

//加载图像


bmpOrg=((BitmapDrawable) getResources().getDrawable(R.drawable.imagetest)).getBitmap();


}


public void zoomImage(int newWidth,int newHeight) {
bmpOrg=((BitmapDrawable) getResources().getDrawable(R.drawable.bjmap)).getBitmap();
int bmpW,bmpH;
bmpW=bmpOrg.getWidth();
bmpH=bmpOrg.getHeight();

// 创建操作图片用的matrix对象
Matrix matrix = new Matrix();
// 计算缩放率,新尺寸除原始尺寸
float scaleWidth = (float)(newWidth)/(float)(bmpW);
float scaleHeight = (float)(newHeight)/(float)(bmpH);


// 缩放图片动作
matrix.postScale(scaleWidth, scaleHeight);
bmpOrg = Bitmap.createBitmap(bmpOrg, 0, 0, bmpW, bmpH,matrix, true);


invalidate();

}
...全文
66 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lee0929 2011-01-14
  • 打赏
  • 举报
回复
Debug 一下吧
xqhrs232 2011-01-14
  • 打赏
  • 举报
回复
有怎么怪的现象?
ameyume 2011-01-13
  • 打赏
  • 举报
回复
Android实现图片放大缩小
以前做过的一个例子,2.1上运行正常,LZ对比看看有什么不一样。

LZ这句不知道可以不可以,用bmpOrg创建位图又赋值给自己。
bmpOrg = Bitmap.createBitmap(bmpOrg, 0, 0, bmpW, bmpH,matrix, true);
中文版Android程序员入门 目 录 I 关于本博客的主题 IV 第一章 什么是Android 1 什么是Android - 嵌入式设备编程的历史-第一章(1) 1 开放手机联盟和Android-(2) 2 介绍Android 第一章(3) 3 Android示例 - 第四章(4) 4 Android的几个示例 - 第四章(5) 5 第二章 下载和安装Eclipse总则 6 下载和安装Eclipse总则 - 第二章(1) 6 下载和安装JRE - 第二章(2) 7 下载和安装Eclipse - 第二章(3) 8 第三章 下载和安装Android SDK 10 下载和安装Android SDK - 第三章(1) 10 下载Android SDK - 第三章(2) 10 为Eclipse配置Android Plugin - 第三章(3) 12 第四章 浏览Android SDK 14 浏览Android SDK - 第四章(1) 14 Android SDK是什么 - 第四章(2) 14 Android 文档 - 第四章(3) 15 Android示例 - 第四章(4) 15 Android的几个示例 - 第四章(5) 16 Android工具 - 第四章(6) 17 Android APIs - 第四章(7) 18 应用程序生命周期 - 第四章(8) 19 第五章Android程序:Hello World! 21 Android程序:Hello World! -第五章(1) 21 仔细查看Android创建的文件 - 第五章(2) 23 引用库和目录 - 第五章(3) 24 Hello World!自动产生文件的详解 - 第五章(4) 25 Hellow World! 再来一次 - 第五章(5) 28 Hello World! 使用一个图形 - 第五章(6) 30 Hello World!代码为基的UI-第五章(7) 31 Hello World! XML为基的UI - 第五章(8) 33 第六章 使用命令行工具和Android模拟器 35 使用命令行工具和Android模拟器 - 第六章(1) 35 利用Windows CLI创建一个壳活动 - 第六章(2) 35 运行ActivityCreator.bat - 第六章(3) 35 项目结构 - 第六章(4) 38 在Windows CLI下创建Hello World!活动 - 第六章(5) 42 增加JAVA_HOME 第六章 (6) 43 编译并安装应用程序 第六章(7) 44 如果运行ANT时出错该怎么办? 第六章(8) 44 用adb安装你的应用程序 第六章(9) 48 运行应用程序产生了一个错误怎么办 - 第六章(10) 49 卸载一个较早的活动 - 第六章(11) 49 重新安装并启动应用程序 - 第六章(12) 50 Linux上的Hello World! 第六章(13) 50 在CLI中创建一个图片基础的Hello World! 第六章(14) 52 第七章 使用Intents 和电话拨号盘 53 使用Intents 和电话拨号盘 第七章(1) 53 Intents是什么? 第七章(2) 53 使用拨号盘 第七章(3) 58 从你的活动中打出电话 第七章(4) 60 编辑活动许可 第七章(5) 62 修改AndroidPhoneDialer 第七章(6) 64 执行一个EditText View 第七章(7) 68 试试这个:修改AndoridPhoneDialer项目 第七章(8) 71 第八章 列表,菜单和其它Views 74 列表,菜单和其它Views 第八章(1) 74 修改AndroidManifest.xml文件 第八章(2) 76 使用菜单 第八章(3) 78 为AutoComplete创建一个活动 第八章(4) 82 按钮 第八章(5) 89 CheckBox 第八章(6) 93 EditText 第八章(7) 98 RadioGroup 第八章(8) 102 Spinner 第八章(9) 107 试试这个:修改更多的View属性 第八章(10) 112 第九章 使用手机的GPS功能 112 使用手机的GPS功能 第九章(1) 112 什么是轨迹文件 第九章(2) 115 使用Android位置基础API读取GPS 第九章(3) 116 书写代码来允许活动 第九章(4) 120 传递坐标到Google地图 第九章(5) 122 增加缩放控制 第九章(6) 125 试试这个:在MapView之间转换 第九章(7) 130 第十章 使用Google API的Gtalk 134 使用Google API的GTalk 第十章(1) 134 在Android中执行GTalk 第十章(2) 136 编译并运行GoogleAPI 第十章(3) 143 试试这个:为GoogleAPI活动增加设置特性 第十章(4) 145 第十一章 应用程序:找一个朋友 145 应用程序:找一个朋友 第十一章(1) 145 创建一个SQLite数据库 第十一章(2) 146 创建一个定制的Content Provider 第十一章(3) 148 创建Content Provider 第十一章(4) 150 创建FindAFriend活动 第十一章(5) 160 创建NameEditor活动 第十一章(6) 162 创建LocationEditor活动 第十一章(7) 166 创建FriendsMap活动 第十一章(8) 175 创建FindAFriend活动 第十一章(9) 181 运行FindAFriend活动 第十一章(10) 184 Android SDK 工具参考 第十二章 (完) 185 Android SDK 工具参考 第十二章 (完) 185 Android SDK 1.5 - 包装索引 191
目 录 I 关于本博客的主题 IV 第一章 什么是Android 1 什么是Android - 嵌入式设备编程的历史-第一章(1) 1 开放手机联盟和Android-(2) 2 介绍Android 第一章(3) 3 Android示例 - 第四章(4) 4 Android的几个示例 - 第四章(5) 5 第二章 下载和安装Eclipse总则 6 下载和安装Eclipse总则 - 第二章(1) 6 下载和安装JRE - 第二章(2) 7 下载和安装Eclipse - 第二章(3) 8 第三章 下载和安装Android SDK 10 下载和安装Android SDK - 第三章(1) 10 下载Android SDK - 第三章(2) 10 为Eclipse配置Android Plugin - 第三章(3) 12 第四章 浏览Android SDK 14 浏览Android SDK - 第四章(1) 14 Android SDK是什么 - 第四章(2) 14 Android 文档 - 第四章(3) 15 Android示例 - 第四章(4) 15 Android的几个示例 - 第四章(5) 16 Android工具 - 第四章(6) 17 Android APIs - 第四章(7) 18 应用程序生命周期 - 第四章(8) 19 第五章Android程序:Hello World! 21 Android程序:Hello World! -第五章(1) 21 仔细查看Android创建的文件 - 第五章(2) 23 引用库和目录 - 第五章(3) 24 Hello World!自动产生文件的详解 - 第五章(4) 25 Hellow World! 再来一次 - 第五章(5) 28 Hello World! 使用一个图形 - 第五章(6) 30 Hello World!代码为基的UI-第五章(7) 31 Hello World! XML为基的UI - 第五章(8) 33 第六章 使用命令行工具和Android模拟器 35 使用命令行工具和Android模拟器 - 第六章(1) 35 利用Windows CLI创建一个壳活动 - 第六章(2) 35 运行ActivityCreator.bat - 第六章(3) 35 项目结构 - 第六章(4) 38 在Windows CLI下创建Hello World!活动 - 第六章(5) 42 增加JAVA_HOME 第六章 (6) 43 编译并安装应用程序 第六章(7) 44 如果运行ANT时出错该怎么办? 第六章(8) 44 用adb安装你的应用程序 第六章(9) 48 运行应用程序产生了一个错误怎么办 - 第六章(10) 49 卸载一个较早的活动 - 第六章(11) 49 重新安装并启动应用程序 - 第六章(12) 50 Linux上的Hello World! 第六章(13) 50 在CLI中创建一个图片基础的Hello World! 第六章(14) 52 第七章 使用Intents 和电话拨号盘 53 使用Intents 和电话拨号盘 第七章(1) 53 Intents是什么? 第七章(2) 53 使用拨号盘 第七章(3) 58 从你的活动中打出电话 第七章(4) 60 编辑活动许可 第七章(5) 62 修改AndroidPhoneDialer 第七章(6) 64 执行一个EditText View 第七章(7) 68 试试这个:修改AndoridPhoneDialer项目 第七章(8) 71 第八章 列表,菜单和其它Views 74 列表,菜单和其它Views 第八章(1) 74 修改AndroidManifest.xml文件 第八章(2) 76 使用菜单 第八章(3) 78 为AutoComplete创建一个活动 第八章(4) 82 按钮 第八章(5) 89 CheckBox 第八章(6) 93 EditText 第八章(7) 98 RadioGroup 第八章(8) 102 Spinner 第八章(9) 107 试试这个:修改更多的View属性 第八章(10) 112 第九章 使用手机的GPS功能 112 使用手机的GPS功能 第九章(1) 112 什么是轨迹文件 第九章(2) 115 使用Android位置基础API读取GPS 第九章(3) 116 书写代码来允许活动 第九章(4) 120 传递坐标到Google地图 第九章(5) 122 增加缩放控制 第九章(6) 125 试试这个:在MapView之间转换 第九章(7) 130 第十章 使用Google API的Gtalk 134 使用Google API的GTalk 第十章(1) 134 在Android中执行GTalk 第十章(2) 136 编译并运行GoogleAPI 第十章(3) 143 试试这个:为GoogleAPI活动增加设置特性 第十章(4) 145 第十一章 应用程序:找一个朋友 145 应用程序:找一个朋友 第十一章(1) 145 创建一个SQLite数据库 第十一章(2) 146 创建一个定制的Content Provider 第十一章(3) 148 创建Content Provider 第十一章(4) 150 创建FindAFriend活动 第十一章(5) 160 创建NameEditor活动 第十一章(6) 162 创建LocationEditor活动 第十一章(7) 166 创建FriendsMap活动 第十一章(8) 175 创建FindAFriend活动 第十一章(9) 181 运行FindAFriend活动 第十一章(10) 184 Android SDK 工具参考 第十二章 (完) 185 Android SDK 工具参考 第十二章 (完) 185 Android SDK 1.5 - 包装索引 191
目 录 I 关于本博客的主题 III 第一章 什么是Android 1 什么是Android - 嵌入式设备编程的历史-第一章(1) 1 开放手机联盟和Android-(2) 2 介绍Android 第一章(3) 2 Android示例 - 第四章(4) 3 Android的几个示例 - 第四章(5) 4 第二章 下载和安装Eclipse总则 5 下载和安装Eclipse总则 - 第二章(1) 5 下载和安装JRE - 第二章(2) 6 下载和安装Eclipse - 第二章(3) 7 第三章 下载和安装Android SDK 8 下载和安装Android SDK - 第三章(1) 8 下载Android SDK - 第三章(2) 9 为Eclipse配置Android Plugin - 第三章(3) 10 第四章 浏览Android SDK 11 浏览Android SDK - 第四章(1) 11 Android SDK是什么 - 第四章(2) 12 Android 文档 - 第四章(3) 12 Android示例 - 第四章(4) 13 Android的几个示例 - 第四章(5) 14 Android工具 - 第四章(6) 14 Android APIs - 第四章(7) 15 应用程序生命周期 - 第四章(8) 16 第五章Android程序:Hello World! 17 Android程序:Hello World! -第五章(1) 17 仔细查看Android创建的文件 - 第五章(2) 19 引用库和目录 - 第五章(3) 20 Hello World!自动产生文件的详解 - 第五章(4) 21 Hellow World! 再来一次 - 第五章(5) 23 Hello World! 使用一个图形 - 第五章(6) 25 Hello World!代码为基的UI-第五章(7) 26 Hello World! XML为基的UI - 第五章(8) 27 第六章 使用命令行工具和Android模拟器 29 使用命令行工具和Android模拟器 - 第六章(1) 29 利用Windows CLI创建一个壳活动 - 第六章(2) 29 运行ActivityCreator.bat - 第六章(3) 30 项目结构 - 第六章(4) 32 在Windows CLI下创建Hello World!活动 - 第六章(5) 36 增加JAVA_HOME 第六章 (6) 36 编译并安装应用程序 第六章(7) 37 如果运行ANT时出错该怎么办? 第六章(8) 37 用adb安装你的应用程序 第六章(9) 40 运行应用程序产生了一个错误怎么办 - 第六章(10) 41 卸载一个较早的活动 - 第六章(11) 41 重新安装并启动应用程序 - 第六章(12) 42 Linux上的Hello World! 第六章(13) 42 在CLI中创建一个图片基础的Hello World! 第六章(14) 44 第七章 使用Intents 和电话拨号盘 44 使用Intents 和电话拨号盘 第七章(1) 44 Intents是什么? 第七章(2) 45 使用拨号盘 第七章(3) 49 从你的活动中打出电话 第七章(4) 51 编辑活动许可 第七章(5) 53 修改AndroidPhoneDialer 第七章(6) 55 执行一个EditText View 第七章(7) 58 试试这个:修改AndoridPhoneDialer项目 第七章(8) 61 第八章 列表,菜单和其它Views 63 列表,菜单和其它Views 第八章(1) 63 修改AndroidManifest.xml文件 第八章(2) 65 使用菜单 第八章(3) 67 为AutoComplete创建一个活动 第八章(4) 71 按钮 第八章(5) 77 CheckBox 第八章(6) 80 EditText 第八章(7) 85 RadioGroup 第八章(8) 89 Spinner 第八章(9) 93 试试这个:修改更多的View属性 第八章(10) 98 第九章 使用手机的GPS功能 98 使用手机的GPS功能 第九章(1) 98 什么是轨迹文件 第九章(2) 101 使用Android位置基础API读取GPS 第九章(3) 102 书写代码来允许活动 第九章(4) 105 传递坐标到Google地图 第九章(5) 107 增加缩放控制 第九章(6) 110 试试这个:在MapView之间转换 第九章(7) 114 第十章 使用Google API的Gtalk 118 使用Google API的GTalk 第十章(1) 118 在Android中执行GTalk 第十章(2) 120 编译并运行GoogleAPI 第十章(3) 126 试试这个:为GoogleAPI活动增加设置特性 第十章(4) 128 第十一章 应用程序:找一个朋友 128 应用程序:找一个朋友 第十一章(1) 128 创建一个SQLite数据库 第十一章(2) 129 创建一个定制的Content Provider 第十一章(3) 130 创建Content Provider 第十一章(4) 132 创建FindAFriend活动 第十一章(5) 141 创建NameEditor活动 第十一章(6) 143 创建LocationEditor活动 第十一章(7) 146 创建FriendsMap活动 第十一章(8) 154 创建FindAFriend活动 第十一章(9) 160 运行FindAFriend活动 第十一章(10) 163 Android SDK 工具参考 第十二章 (完) 164 Android SDK 工具参考 第十二章 (完) 164 Android SDK 1.5 - 包装索引 169

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧