为了账号安全,请及时绑定邮箱和手机立即绑定

通过XML循环查看图像

/ 猿问

通过XML循环查看图像

慕少0579507 2019-07-22 16:00:37

通过XML循环查看图像

我想用我的ImageView有边界的圆形。

我搜索了一下,但找不到任何有用的信息(我尝试过的任何信息都不起作用)。

如何通过xml实现这一目标:创建ImageView用特定的src和一个边界做圆圈?


查看完整描述

3 回答

?
慕尼黑的夜晚无繁华

你可以用白色边框和透明的形状组成一个简单的圆圈。

// res/drawable/circle.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>

然后绘制一个分层列表,并将其作为图像视图的背景。

// 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/ic_launcher"/>
    <item android:drawable="@drawable/circle"/>

</layer-list>

并把它作为你的图像视图的背景。

   <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/img"/>

你会有这样的东西。


查看完整回答
反对 回复 2019-07-22
?
DIEA

这是我设计的最简单的方法。尝尝这个。

dependencies: compile 'com.android.support:appcompat-v7:23.1.1'
              compile 'com.android.support:design:23.1.1'
              compile 'com.android.support:cardview-v7:23.1.1'

<android.support.v7.widget.CardView
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:elevation="12dp"
    android:id="@+id/view2"
   app:cardCornerRadius="40dp"
    android:layout_centerHorizontal="true"
    android:innerRadius="0dp"
    android:shape="ring"
    android:thicknessRatio="1.9">
    <ImageView
        android:layout_height="80dp"
        android:layout_width="match_parent"
        android:id="@+id/imageView1"
        android:src="@drawable/YOUR_IMAGE"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true">
    </ImageView>
 </android.support.v7.widget.CardView>

如果您正在开发棒棒糖上面的android版本

<android.support.v7.widget.CardView
android:layout_width="80dp"
android:layout_height="80dp"
android:elevation="12dp"
android:id="@+id/view2"
app:cardCornerRadius="40dp"
android:layout_centerHorizontal="true">
<ImageView
    android:layout_height="80dp"
    android:layout_width="match_parent"
    android:id="@+id/imageView1"
    android:src="@drawable/YOUR_IMAGE"
    android:scaleType="centerCrop"/>
  </android.support.v7.widget.CardView>


查看完整回答
反对 回复 2019-07-22
?
扬帆大鱼

如果使用src属性。我所做的是将两个图像视图放在一个框架布局中,一个在另一个上面,如下所示:

<FrameLayout android:id="@+id/frame"
             android:layout_width="40dp"
             android:layout_height="40dp">

    <ImageView android:id="@+id/pic"
               android:layout_width="40dp"
               android:layout_height="40dp"
               android:src="@drawable/my_picture" />

    <ImageView android:id="@+id/circle_crop"
               android:layout_width="40dp"
               android:layout_height="40dp"
               android:src="@drawable/circle_crop" />

</FrameLayout>

只需在可绘制文件夹中放置一个圆形_crop.png,该文件夹的形状为图像尺寸(在我的例子中为正方形),中间有一个白色背景和一个透明的圆圈。如果你想要一个方形的图像视图,你可以使用这个图像。

下载上面的图片。


查看完整回答
反对 回复 2019-07-22

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信