处理图片的总结
来源:互联网 发布:知金教育招聘 编辑:程序博客网 时间:2024/05/31 00:39
用下面的代码画图时图片总是被放大,超出了屏幕。资料说跟density和targetDensity有关系,当两者不一致时就会被放大或缩小。
1
2
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.board);
canvas.drawBitmap(bitmap,
0
,
0
,
null
);
为了在画图时保持其原有大小,可以使用以下代码解决:
1
2
3
4
DisplayMetrics dm = getResources().getDisplayMetrics();
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.background);
bitmap.setDensity((
int
)(bitmap.getDensity() * dm.density +
0
.5f));
canvas.drawBitmap(bitmap,
0
,
0
,
null
);
这样解决比较麻烦,必须给每个位图设置density,而且获得的图片高度和宽度仍是放大后的值。
要获取图片的原始大小可以设置这样:
1
2
3
4
5
BitmapFactory.Options options =
new
BitmapFactory.Options();
options.inJustDecodeBounds =
true
;
BitmapFactory.decodeResource(getResources(), R.drawable.background, options);
int
rawWidth = options.outWidth;
int
rawHeight = options.outHeight;
其中也尝试过设置options.inScaled为false来禁止缩放,结果失败,也不知道咋回事。
最后找到个办法就是将图片放入到drawable-nodpi目录中。在该文件夹中的图片将不会被缩放,9patch图片格式不受此限制。
http://helloandroid.iteye.com/blog/1206610介绍了给ImageView中的图片边缘添加光晕的方法。其实还有种方式是使用BlurMaskFilter来实现:
1
2
3
4
5
6
7
BlurMaskFilter blurMaskFilter =
new
BlurMaskFilter(
3
, BlurMaskFilter.Blur.OUTER);
Paint shadowPaint =
new
Paint();
shadowPaint.setMaskFilter(blurMaskFilter);
shadowPaint.setColor(COLOR.BLUE);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.peg);
Bitmap shadowBitmap = bitmap.extractAlpha();
canvas.drawBitmap(shadowBitmap,
null
, peg.getRect(), shadowPaint);
代码下载
0 0
- 处理图片的总结
- android处理图片的一些问题总结
- android处理图片的一些问题总结
- android处理图片的一些问题总结
- 关于Android图片处理的总结
- android 图片处理总结
- Image图片处理总结
- 图片处理方法总结
- Android 图片处理总结
- wxwidgets中vector的处理图片的用法和总结
- wxWidgets中wxTimer处理图片切换的问题总结
- Android App 瘦身总结 第一章 图片资源的优化处理
- 对于tf中图片处理的一点点小总结
- 项目中图片处理总结
- 总结一篇php图片处理
- PS高效处理图片总结
- 图片处理常用方法总结
- bmp图片处理简单总结
- DAS连续测试下卡死问题
- sysdev_class,sys_device,sysdev_driver详解 http://blog.chinaunix.net/uid-20543183-id-1930813.html
- 自电容和互电容两种屏的工作原理
- Android 读取网络数据
- 在SYBASE中进行分页查询的方法
- 处理图片的总结
- Uniy3D 鼠标拖拽旋转物体
- Ubuntu 14.04 64bit 安装 WPS 2013
- [转]ptmalloc,tcmalloc和jemalloc内存分配策略研究
- 软件项目管理流程总结
- phpcms文章引用评论模块
- xcode -- xcode创建一个工程的多个taget多个sheme
- linux驱动开发环境的配置
- centos 使用yum方式安装ffmpeg方法