您的位置:首页 > 其它

如何在ImageView组件中显示图像的一部分

2014-12-14 17:55 239 查看
如果想任意截取图像,可以使用Bitmap.createBitmap方法在原图像的基础上截获某一部分图像,并创建这部分图像的Bitmap对象,代码如下:

//截取(10,10,100,100)范围的图像

Bitmap smallBitmap = Bitmap.createBitmap(sourceBitmap,20,20,100,100);

//将截取后的图像显示在ImageView组件中

imageview.setImageBitmap(smallBitmap);

如果只想从图像的一端(上、下、左、右)截取图像,也可以使用图像剪切资源。这种资源需要在res/drawabl目录中建立一个xml文件,并使用下面的代码从图像左侧开始截取图像,然后只需要将图像剪切资源当作普通图像资源使用即可。

<?xml version="1.0" encoding="utf-8"?>

<clip xmlns:android="http://schemas.android.com/apk/res/android"

android:drawable="@drawable/android"

android:clipOrientation="horizontal"

android:gravity="left"/>

</clip>

只使用图像剪切资源还无法获得图像剪切效果,最后需要使用ClipDrawable.setLevel方法设置截取的百分比。系统预定义了10000为100%。下面的代码从图像左侧截取了30%.

ImageView imageview = (ImageView)findViewById(R.id.image);

ClipDrawable drawable = (ClipDrawable)imageview.getDrawable();

/从图像左侧截取图像的30%

drawable.setLevel(3000);

将android:clipOrientation属性值设为vertical,可以从上、下两个方向截取图像。

如何为图像加上边框?

首先做一个透明的带边框的nine-patch格式图像,然后通过<ImageView>标签的android:background属性指定这个图像就可以为图像加上边框
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: