ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

一手遮天 Android - view(基础): 剪裁

2021-09-22 10:37:30  阅读:180  来源: 互联网

标签:一手遮天 imageView2 imageView3 void imageView1 import Android view


项目地址 https://github.com/webabcd/AndroidDemo
作者 webabcd

一手遮天 Android - view(基础): 剪裁

示例如下:

/view/ViewDemo3.java

/**
 * 演示 view 剪裁
 */

package com.webabcd.androiddemo.view;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Outline;
import android.os.Bundle;
import android.view.View;
import android.view.ViewOutlineProvider;
import android.widget.ImageView;

import com.webabcd.androiddemo.R;

public class ViewDemo3 extends AppCompatActivity {

    private ImageView _imageView1;
    private ImageView _imageView2;
    private ImageView _imageView3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_viewdemo3);

        _imageView1 = findViewById(R.id.imageView1);
        _imageView2 = findViewById(R.id.imageView2);
        _imageView3 = findViewById(R.id.imageView3);

        sample1();
        sample2();
        sample3();
    }

    // 圆形剪裁
    private void sample1() {
        ViewOutlineProvider viewOutlineProvider = new ViewOutlineProvider() {
            @Override
            public void getOutline(View view, Outline outline) {
                outline.setOval(0,0,_imageView1.getWidth(), _imageView1.getHeight());
            }
        };
        _imageView1.setOutlineProvider(viewOutlineProvider);
        _imageView1.setClipToOutline(true);
    }

    // 矩形剪裁
    private void sample2() {
        ViewOutlineProvider viewOutlineProvider = new ViewOutlineProvider() {
            @Override
            public void getOutline(View view, Outline outline) {
                outline.setRect(20,0,_imageView2.getWidth(), _imageView2.getHeight());
            }
        };
        _imageView2.setOutlineProvider(viewOutlineProvider);
        _imageView2.setClipToOutline(true);
    }

    // 圆角剪裁
    private void sample3() {
        ViewOutlineProvider viewOutlineProvider = new ViewOutlineProvider() {
            @Override
            public void getOutline(View view, Outline outline) {
                outline.setRoundRect(0,0,_imageView3.getWidth(), _imageView3.getHeight(), 20);
            }
        };
        _imageView3.setOutlineProvider(viewOutlineProvider);
        _imageView3.setClipToOutline(true);
    }
}

/layout/activity_view_viewdemo3.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/img_sample_son"/>

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/img_sample_son"/>

    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/img_sample_son"/>

</LinearLayout>

项目地址 https://github.com/webabcd/AndroidDemo
作者 webabcd

标签:一手遮天,imageView2,imageView3,void,imageView1,import,Android,view
来源: https://www.cnblogs.com/webabcd/p/android_view_ViewDemo3.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有