[关闭]
@946898963 2018-09-03T07:49:55.000000Z 字数 1344 阅读 1373

Clipping(裁剪)

Android学习笔记


Clipping可以让我们改变一个视图的外形。要使用Clipping,首先需要使用ViewOutineProvider来修改outline,然后再通过setOutlineProvider将outline作用给视图。

利用裁剪来实现一个圆角矩形的TextView和一个圆形的ImageView。

  1. <TextView
  2. android:id="@+id/tv"
  3. android:layout_width="96dp"
  4. android:layout_height="96dp"
  5. android:text="Hello World!"
  6. android:background="@color/colorAccent"
  7. />
  8. <ImageView
  9. android:id="@+id/iv"
  10. android:layout_width="96dp"
  11. android:layout_height="96dp"
  12. android:src="@drawable/touxiang"
  13. />
  1. final TextView tv = (TextView) findViewById(R.id.tv);
  2. ViewOutlineProvider viewOutlineProvider1 = new ViewOutlineProvider() {
  3. @Override
  4. public void getOutline(View view, Outline outline) {
  5. outline.setRoundRect(0,0,view.getWidth(),view.getHeight(),30);
  6. }
  7. };
  8. tv.setOutlineProvider(viewOutlineProvider1);
  9. tv.setClipToOutline(true);
  10. final ImageView imageView = (ImageView) findViewById(R.id.iv);
  11. ViewOutlineProvider viewOutlineProvider2 = new ViewOutlineProvider() {
  12. @Override
  13. public void getOutline(View view, Outline outline) {
  14. outline.setOval(0,0,view.getWidth(),view.getHeight());
  15. }
  16. };
  17. imageView.setOutlineProvider(viewOutlineProvider2);
  18. imageView.setClipToOutline(true);

效果图:

此处输入图片的描述

setClipToOutline方法可以在前设置也可以在后设置,如果设置为false则表示禁止裁剪,setOutlineProvider方法将无效。

注意:

参考链接:

《Android群英传》

Android 5.0新特性学习--视图轮廓

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注