如何在Android上定义一个圆形的ImageView?

问题描述 投票:0回答:1

Android上所有的视图类都是定义为矩形的,当你触摸时它会检测到矩形区域,当你设置图像时它会填充矩形。

我需要的功能

  1. 支持所有的ImageView功能
  2. 方形图像输入后,用setImageBitmap或onDraw转换为圆形。
  3. 将圆形触控区转换为方形。
  4. 体积小,开销大。
  5. 第三方也可以,但更喜欢用interal库。
java android view
1个回答
0
投票

在你的drawable包中创建一个形状。 / resdrawablecircle.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:innerRadius="0dp"
    android:shape="ring"
    android:thicknessRatio="1.9"
    android:useLevel="false" >
    <solid android:color="@android:color/transparent" />
    <stroke
        android:width="10dp"
        android:color="@android:color/white" />
</shape>

然后在drawable里面创建一个图层列表

    // res/drawable/img.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:drawable="@drawable/circle"/>    
    <item android:drawable="@drawable/ic_launcher"/>

</layer-list>

然后用图层列表创建图像视图

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/img"/>
© www.soinside.com 2019 - 2024. All rights reserved.