imageview裁剪显示一部分内容

来源:互联网 发布:c语言开发的开源项目 编辑:程序博客网 时间:2024/06/05 16:52

imageview设置background为一个clip文件,就可以通过代码控制显示裁剪部分显示。直接上代码:

 <ImageView        android:id="@+id/rightClip"        android:layout_width="180dp"        android:layout_height="180dp"        android:layout_gravity="center_horizontal"        android:layout_marginTop="12dp"        android:scaleType="centerCrop"        android:background="@drawable/clip_right_res"/>

clip_right_res:在Drawable中定义
<?xml version="1.0" encoding="utf-8"?><clip xmlns:android="http://schemas.android.com/apk/res/android"      android:clipOrientation="horizontal"      android:drawable="@drawable/cat"      android:gravity="right"></clip>

解释一下,上面的cliporientation是裁剪的方向,是横向裁剪还是纵向裁剪,gravity是指裁剪的后保留哪一部分显示,如果裁剪方向为横向,gravity设置right,那么就是纵向一刀裁剪下去,保留右边的内容来显示,左边就不显示了。

那么问题就又来了,裁剪的时候我那一刀在什么位置去切:

ImageView clipRight = (ImageView) findViewById(R.id.rightClip);        ClipDrawable clipRightDrawable = (ClipDrawable) clipRight.getBackground();        //level:0-10000.        clipRightDrawable.setLevel(2000);

setLevel之前碰见过,这里用的和之前说的是一样的,setlevel的中的参数值在0-10000之间,这里如果设置2000,就是说保留右边2000/10000显示,左边8000/10000就不显示了,就是这个意思,一次类推。。。

阅读全文
0 0
原创粉丝点击