2

我需要在我的应用程序中为 imageview 或 textview 绘制边框,但我只需要在一个角落绘制它,就像图像一样。

在此处输入图像描述

我做了一个形状,但我在所有 4 个方面都有边框:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:width="1px" android:color="#FF000000" />
    <solid android:color="#ffffffff"/>  
    <padding android:left="1px" android:top="1px"
        android:right="0px" android:bottom="0px" />
    <corners android:topLeftRadius="8px" /> 
</shape> 

我怎样才能使它像图像中一样?

谢谢, 马蒂亚

4

2 回答 2

6

使用此代码将解决它:

<?xml version="1.0" encoding="utf-8" ?> 
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item>
   <shape android:shape="rectangle">
    <solid android:color="#FF0000" /> 
     <corners android:topLeftRadius="15dp" /> 
    </shape>
 </item>
<item android:left="10dp" android:top="10dp">
  <shape android:shape="rectangle">
   <solid android:color="#000000" /> 
    <corners android:topLeftRadius="15dp" /> 
  </shape>
 </item>
</layer-list>

您还必须在(布局 Xml)中进行调整:

安卓:布局宽度

机器人:布局高度

安卓:填充顶部

安卓:paddingLeft

这是输出:

在此处输入图像描述

希望这有帮助。

于 2012-05-08T09:33:40.980 回答
0

这就是我实现的方式。使用insetdrawable,我们可以轻松实现这一点,并且我们可以用更少的代码进行更多的定制。用这个twoside_border.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- inset: It can remove border from any other side-->
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetBottom="-15dp"
android:insetRight="-15dp">

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rectangle">
    <stroke
        android:width="20dp"
        android:color="#ED302F" />

     <!--<corners
        android:topLeftRadius="20dp"
       />-->

    <!--<solid android:color="#f50a0a" />-->
</shape>

insetBottom& insetRight -dp values 有助于隐藏我们不需要的边框并作为输出:

两侧边框图像

要获得拐角曲线,请删除上面代码中的注释行

<corners android:topLeftRadius="20dp"/>

现在我们可以看到曲线弯曲

带有曲线图像的边框

xml在下面我如何使用它frame layout并根据您的需要调整填充或边距,使其适合看起来像框架的边框图像。

<FrameLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

            <ImageView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"

                android:paddingLeft="5dp"
                android:paddingRight="5dp"
                android:paddingTop="5dp"
                android:scaleType="centerCrop"
                android:src="@drawable/your_image_file" />

            <ImageView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="@drawable/twoside_border" />

        </FrameLayout>
于 2016-05-14T06:48:42.277 回答