ImageView,Bitmap的浅析

来源:互联网 发布:程序员交流软件 编辑:程序博客网 时间:2024/06/06 08:53

多low,也得做好总结——题记

一个app客户端启动时候,一般会在开始的欢迎界面展示图片,这时候会用的ImageView组件负责展示(一般是静态图片),图片的处理(包括缩放等)则需要用的Bitmap类来处理,这是这个两个类在功能上的区别,今天看了公司的项目,发现了欢迎界面的图片展示是通过这样的逻辑实现的:

1.将图片A放到资源包里面

2.在欢迎界面中,使用imageview组件,宽度为match_parent,占据整个屏幕,而高度设置为wrap_content,没有设置默认图片资源(src属性),也没有设置背景(background)属性

3.在activity中,使用bitmap类对图片A进行处理,这时候需要按照长宽比进行缩放到水平方向刚好占据整个屏幕

· 4.对imageview组件设置默认图片资源。


解决完问题后,想了解Imageview组件设置background的效果和设置src的效果有什么不同,上网查了些资料,发现background的属性,是将资源文件完全填充到imageview组件中区,imageview组件的宽高决定了这张图片显示时候的比例。而src属性,则是将这个图片插入到这个imageview组件中,imageview的宽高,不影响src显示时候的比例和大小,但是可能会影响到显示的是哪个部分(当src图片比imageview的大小要更大的时候)

Bitmap对src图片进行处理的时候,举例如下:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.png_01);DisplayMetrics dm = new DisplayMetrics();   //创建DisplayMetrics对象,
getWindowManager().getDefaultDisplay().getMetrics(dm);  //获取屏幕的默认尺寸。

int width =  dm.widthPixels;//屏幕横向的像素int height = dm.heightPixels;//屏幕纵向的像素double bili = (double)(bitmap.getHeight()/bitmap.getWidth());//资源图片的宽高比例int gao = (int)(bili*width);Bitmap img = Bitmap.createScaledBitmap(bitmap,width,gao,true );//对资源图片重现定义宽高,并显示




0 0
原创粉丝点击