Androidはshapeを使って枠のある背景を作る方法で収集整理します

27207 ワード

方法1
 xmlns:android="http://schemas.android.com/apk/res/android">


      
             android:color="#535353" />
      


 android:bottom="1dp">
     
            android:color="#252525" />
     

方法2
 xmlns:android="http://schemas.android.com/apk/res/android">
    
    
          
                 android:left="0dp" android:top="1dp" android:right="0dp" android:bottom="1dp"/>
                 android:color="#898989" />
          
    
    
    
         
              android:color="#ffffff" />
         
    

方法3は、高得点スクリーンの下で問題がある可能性があり、解決策は-1 dpを-1 pxに変えることです.最良の方法は、異なる密度スクリーンに異なる密度リソースファイル(dimension resources)dimensを設定することである.xml
xml version="1.0" encoding="utf-8"?>

 xmlns:android="http://schemas.android.com/apk/res/android">

     android:top="-1dp" android:right="-1dp" android:left="-1dp">
      
             android:color="@android:color/transparent" />
             android:width="1dp" android:color="#ffffff" />
      
    

メソッド4、これはhack、angle 0=left 90=bottom 180=right 270=topであるべきである
xml version="1.0" encoding="utf-8"?>
 xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    
        android:angle="0"
        android:startColor="#f00"
        android:centerColor="@android:color/transparent"
        android:centerX="0.01" />

方法5
xml version="1.0" encoding="utf-8"?>
 xmlns:android="http://schemas.android.com/apk/res/android"
    android:insetTop="-2dp" 
    android:insetBottom="-2dp"
    android:insetLeft="-2dp">

     android:shape="rectangle">
         android:width="2dp" android:color="#FF0000" />
         android:color="#000000" />
    



方法6
1: A border.xml shape, which is just a solid shape in the color of your border: border.xml
xml version="1.0" encoding="UTF-8"?>
 xmlns:android="http://schemas.android.com/apk/res/android">
     android:color="#ff0000"/>

2: The 'inner' shape, the shape where you want the border to appear around: inner.xml
xml version="1.0" encoding="UTF-8"?>
 xmlns:android="http://schemas.android.com/apk/res/android">
     android:color="#00ff00"/>

3: A layer list, which will put these 2 on top of eachother. You create the border by setting the padding on the inner shape: layerlist.xml
xml version="1.0" encoding="UTF-8"?>
 xmlns:android="http://schemas.android.com/apk/res/android">
 android:drawable="@drawable/border"/>
 android:drawable="@drawable/inner"
    android:top="3dp" android:right="0dp" android:bottom="3dp"
    android:left="3dp" />

方法7で最も長くよく使われる方法は、9-patchファイルを使用することです.これはshapeに属しません.
まとめ:方法1 3 6原理はほぼ同じであるべきである