在ImageView中显示图像的一部分

一、任意截取图像
可以使用Bitmap.createBitmap方法在原图像的基础上截获某一部分图像,并创建这部分图像的Bitmap对象

//截取(10,10,100,100)范围的图像
Bitmap smallBitmap = Bitmap.createBitmap(sourceBitmap,20,20,100,100);
//将获取后的图像显示在ImageView组件中
imageView.setImageBitmap(smallBitmap);

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

<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/logo.png"
    android:clipOrientation="horizontal"
    android:gravity="left">

</clip>

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

ImageView imageView = (ImageView)fingViewById(R.id.image);
ClipDrawable drawable = (ClipDrawable)imageView.getDrawable();
drawable.setLevel(3000);

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值