9159金沙官网-9159金沙游艺场官网-金沙国际官网

咨询热线:023-67611227

24小时热线:13372636650

新闻中心

9159金沙

产品方案

服务项目

开发案例
新闻资讯
联系我们

【Android】View的裁剪显示

2020/02/07  来源:9159金沙官网

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

通过下面这个例子向大家介绍clipping的用法,将一个正方形的textview裁剪成一个圆角方形和一个圆。布局代码如下:

 

<TextView
    android:id="@+id/tv_circle_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:gravity="center"
    android:padding="20dp"
    android:background="#ffffff"
    android:text="裁剪一" />
<TextView
    android:id="@+id/tv_circle_2"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_margin="10dp"
    android:background="#ff0000"
    android:elevation="1dp"
    android:gravity="center"
    android:text="裁剪二" />

<ImageView
    android:id="@+id/tv_circle_3"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_margin="10dp"
    android:elevation="1dp"
    android:gravity="center"
    android:src="@drawable/test" />
<ImageView
    android:id="@+id/tv_circle_4"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_margin="10dp"
    android:elevation="1dp"
    android:gravity="center"
    android:src="@drawable/test" />

 

程序代码如下所示:

//设置outline 裁剪
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void initCircle() {
    //获取outline
    ViewOutlineProvider viewOutlineProvider1 = new ViewOutlineProvider() {
        @Override
        public void getOutline(View view, Outline outline) {
            //修改outline为特定形状,上下左右相当于padding
            outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), 40);
        }
    };
    //获取outline
    ViewOutlineProvider viewOutlineProvider2 = new ViewOutlineProvider() {
        @Override
        public void getOutline(View view, Outline outline) {
            //修改outline为特定形状
            outline.setOval(0, 0, view.getWidth(), view.getHeight());
        }
    };
    //重新设置形状
    tvCircle1.setOutlineProvider(viewOutlineProvider1);
    tvCircle2.setOutlineProvider(viewOutlineProvider2);
    tvCircle3.setOutlineProvider(viewOutlineProvider1);
    tvCircle4.setOutlineProvider(viewOutlineProvider2);
    //添加背景或者是Imageview的时候失效,添加如下设置
    tvCircle1.setClipToOutline(true);
    tvCircle2.setClipToOutline(true);
    tvCircle3.setClipToOutline(true);
    tvCircle4.setClipToOutline(true);
}

 

其中前两个是textview,在代码中为其设置ViewOutlineProvider ,ViewOutlineProvider 中只有一个方法getOutline,设置圆角矩形的时候用outline.setRoundRect,里面的参数是四周的距离,最后是圆角的半径。设置圆形的时候是outline.setOval。

同时,还可以设置imageview的显示形状。

注意,当设置背景色和图片无效的时候,添加setClipToOutline(true)。效果如下图:

9159金沙官网www.trustdavidmoody.com

怎么做一款多商户商城APP开发?

现在的互联网电商平台多种多样,特别是现在的移动互联网发展,智能手机的普及使得

低价制作手机APP怎么样

手机APP作为传递商品信息的重要手段,正在被广泛应用于各大商业活动中。随着互联网

app外包公司:分析app用户流失

app外包公司称app用户是我们开发APP最大的动力,当app受到大众欢迎时,也是app开发公司

点击我更换图片

公司地址:

重庆市渝北区冉家坝时光城写字楼

联系方式:

023-67611227

13372636650(24h热线)

重庆市渝北区冉家坝时光城写字楼

© 2020 9159金沙官网

渝ICP备15006414号-2      渝公网安备 50011202502110号