欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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);