2

アプリでimageviewまたはtextviewに境界線を描画する必要がありますが、画像のように1つのコーナーにのみ描画する必要があります。

ここに画像の説明を入力してください

私は形をしますが、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>

( layout Xml ) で次のように調整する必要があります。

アンドロイド:layout_width

アンドロイド:layout_height

アンドロイド:パディングトップ

アンドロイド:パディング左

これは出力です:

ここに画像の説明を入力

この助けを願っています。

于 2012-05-08T09:33:40.980 に答える
0

これが私が達成した方法です。drawable を使用insetすると、これを簡単に実現でき、より少ないコードでより多くのカスタマイズを行うことができます。これを使って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値は、必要のない境界線を非表示にし、出力として使用するのに役立ちます:

両面ボーダー画像

コーナーカーブを取得するには、上記のコードのコメント行を削除します

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

曲線が曲がっていることがわかります

曲線画像付きボーダー

これxmlframe 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 に答える