ImageView 博客分类: Android控件常用属性 androidImageViewBitmap图片处理
程序员文章站
2024-03-25 14:56:58
...
使用ImageView旋转图片或缩放图像:
Bitmap bm = ((BitmapDrawable)getResources().getDrawable(R.drawable.ic_launcher)).getBitmap(); Matrix matrix = new Matrix(); //matrix.setScale((float)1.5, (float)1.5);//放大1.5倍 matrix.setRotate(-45);//旋转-45度 Bitmap newBm = Bitmap.createBitmap(bm,0,0,bm.getWidth(),bm.getHeight(),matrix,true); iv.setImageBitmap(newBm);
如上面代码所示:使用ImageView旋转或缩放图片的时候,首先你需要将图片转为Bitmap,对Bitmap进行旋转或缩放(通过设置Matrix),最后调用createBitmap来得到处理后的图片,利用ImageView显示出来。
注意这里setScale和setRotate不能同时起作用。
让ImageView显示部分图像:
方法一:
重新创建Bitmap
Bitmap bm = ((BitmapDrawable)getResources().getDrawable(R.drawable.ic_launcher)).getBitmap(); Bitmap newBm = Bitmap.createBitmap(bm,0,0,50,50);//截取某一部分的像素显示(从图片的左上角开始,向右向下各50个像素) iv.setImageBitmap(newBm);
方法二:
使用图像剪切资源
1.首先在res/drawable中建立clip_drawable.xml:(命名可以随意,只要符合规范即可)
<?xml version="1.0" encoding="utf-8"?> <clip xmlns:android="http://schemas.android.com/apk/res/android" android:clipOrientation="horizontal|vertical" android:drawable="@drawable/ic_launcher" android:gravity="center"> </clip>
通过配置clipOrientation和gravity两个属性,可以实现对图的灵活剪切,比如上面的配置,实现的是对图的上下左右同时剪切相同的比例,至于剪切的比例,要在代码中控制。
2.先看看布局文件中的ImageView:(这里引用的是上面定义的clip_drawable.xml)
<ImageView android:id="@+id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:src="@drawable/clip_drawable" />
3.再看代码:
ClipDrawable clipDrawable = (ClipDrawable)iv.getDrawable(); clipDrawable.setLevel(3000);//设置截取图像的30%(100%是10000) iv.setImageDrawable(clipDrawable);