图片的旋转和缩放android高级
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
view plaincopy to clipboardprint?
1.package com.test.activity;
2.
3.import android.app.Activity;
4.import android.graphics.Bitmap;
5.import android.graphics.BitmapFactory;
6.import android.graphics.Matrix;
7.import android.graphics.drawable.BitmapDrawable;
8.import android.os.Bundle;
9.import youtParams;
10. import android.widget.ImageView;
11. import android.widget.LinearLayout;
12. import android.widget.ImageView.ScaleType;
13.
14. public class MainActivity extends Activity {
15. public void onCreate(Bundle icicle) {
16. super.onCreate(icicle);
17. LinearLayout linLayout = new LinearLayout(this);
18. // 加载需要操作的图片,这里是eoeAndroid的logo图片
19. Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),
20. R.drawable.sss);
21.
22. //获取这个图片的宽和高
23. int width = bitmapOrg.getWidth();
24. int height = bitmapOrg.getHeight();
25.
26. //定义预转换成的图片的宽度和高度
27. int newWidth = 200;
28. int newHeight = 200;
29.
30. //计算缩放率,新尺寸除原始尺寸
31. float scaleWidth = ((float) newWidth) / width;
32. float scaleHeight = ((float) newHeight) / height;
33.
34. // 创建操作图片用的matrix对象
35. Matrix matrix = new Matrix();
36.
37. // 缩放图片动作
38. matrix.postScale(scaleWidth, scaleHeight);
39.
40. //旋转图片动作
41. matrix.postRotate(45);
42.
43. // 创建新的图片
44. Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0,
45. width, height, matrix, true);
46.
47. //将上面创建的Bitmap转换成Drawable对象,使得其可以使用在
ImageView, ImageButton中
48. BitmapDrawable bmd = new BitmapDrawable(resizedBitmap);
49.
50. //创建一个ImageView
51. ImageView imageView = new ImageView(this);
52.
53. // 设置ImageView的图片为上面转换的图片
54. imageView.setImageDrawable(bmd);
55.
56. //将图片居中显示
57. imageView.setScaleType(ScaleType.CENTER);
58.
59. //将ImageView添加到布局模板中
60. linLayout.addView(imageView,
61. new youtParams(
62. LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT
63. )
64. );
65.
66. // 设置为本activity的模板
67. setContentView(linLayout);
68. }
69. }