65

下部を除いて線形レイアウトの周りに境界線を追加するにはどうすればよいですか?LinearLayoutは、左側、上部、右側に境界線を付ける必要がありますが、下部には境界線を付ける必要はありません。

4

4 に答える 4

169

drawableフォルダーにborder.xmlという名前のXMLファイルを作成し、その中に次のコードを配置します。

 <?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" /> 
    </shape>
  </item>   
    <item android:left="5dp" android:right="5dp"  android:top="5dp" >  
     <shape android:shape="rectangle"> 
      <solid android:color="#000000" />
    </shape>
   </item>    
 </layer-list> 

次に、次のように線形レイアウトに背景を追加します。

         android:background="@drawable/border"

編集 :

このXMLは、GingerBread 2.3.3を実行している銀河でテストされ、次の画像に示すように完全に実行されました。

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

また

JellyBean4.1.2を実行しているgalaxys3でテストされ、下の画像に示すように完全に実行されました。

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

最後に、すべてのAPIで完全に機能します

編集2:

次のコードを使用して、下部を除いて境界線を維持しながら、背景を透明に保つためにストロークを使用して実行することもできます。

<?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:left="0dp" android:right="0dp"  android:top="0dp"  
        android:bottom="-10dp"> 
    <shape android:shape="rectangle">
     <stroke android:width="10dp" android:color="#B22222" />
    </shape>
   </item>  
 </layer-list> 

これがお役に立てば幸いです。

于 2012-05-05T13:12:43.430 に答える
57

このxmlを保存し、線形レイアウトの背景として追加します。

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <stroke android:width="4dp" android:color="#FF00FF00" /> 
    <solid android:color="#ffffff" /> 
    <padding android:left="7dp" android:top="7dp" 
            android:right="7dp" android:bottom="0dp" /> 
    <corners android:radius="4dp" /> 
</shape>

お役に立てれば!:)

于 2012-05-04T23:03:07.743 に答える
22

ケニーは正しいです、ただいくつかのことを片付けたいだけです。

  1. ファイルborder.xmlを作成してフォルダに入れますres/drawable/
  2. コードを追加する

    <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
       <stroke android:width="4dp" android:color="#FF00FF00" /> 
       <solid android:color="#ffffff" /> 
       <padding android:left="7dp" android:top="7dp" 
            android:right="7dp" android:bottom="0dp" /> 
       <corners android:radius="4dp" /> 
    </shape>
    
  3. android:background="@drawable/border"国境を望む場所のように背景を設定します

私の最初はうまくいきませんでしborder.xmlた。間違ったフォルダに入れました!

于 2013-03-01T09:37:32.300 に答える
2

これは、FrameLayoutウィジェットに基づいて、必要なウィジェットに合わせて境界線を操作できる、軽量で非常に簡単に統合できるライブラリへのGithubリンクです。

これがいかに簡単かを知るための簡単なサンプルコードですが、リンクでより多くの情報を見つけることができます。

<com.khandelwal.library.view.BorderFrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:leftBorderColor="#00F0F0"
            app:leftBorderWidth="10dp"
            app:topBorderColor="#F0F000"
            app:topBorderWidth="15dp"
            app:rightBorderColor="#F000F0"
            app:rightBorderWidth="20dp"
            app:bottomBorderColor="#000000"
            app:bottomBorderWidth="25dp" >
    </com.khandelwal.library.view.BorderFrameLayout>

したがって、下部に境界線を付けたくない場合は、このカスタムウィジェットの下部に関する2行を削除すれば完了です。

いいえ、私はこのライブラリの作成者でも、彼の友人でもありません;-)

于 2015-06-12T11:35:46.423 に答える