Androidコントロールselectorでカスタマイズした文字付き画像ボタン

5156 ワード

Androidでプログラミングを頻繁に行う人は、Androidが提供するButtonとImageButtonのコントロールにより、ボタンに画像と文字を付けることができます.つまり(1)Buttonはandroid:background属性でボタンに背景画像を追加することができ、android:text属性でボタンに文字を追加することができます.しかし、ボタンの背景画像を変えることができないという明らかな欠陥があります.(2)ImageButtonはandroid:src属性でボタンに背景画像を追加できますが、android:text属性ではボタンに文字を追加できません.ボタンに文字を追加できないのは明らかです.
上の悩みを解決するために、この文章が生まれた.まず、コードを貼ります.
//-------------------main.xml-----------------------



    
//-------------------selector.xml-----------------------


    
        
    


ここには元の要素が1つ増えた理由が見えます.AndroidのSelectorは、主にListViewとButtonコントロールのデフォルトの背景を変更するために使用されます.次は自然に詳しく説明します.
一、ListView下のselector(1)ListView下のselectorの属性
     
   
    
    
    
         
    
     
    
    
    
       
    
       
 

(2)ListViewの下のselectorがxmlファイルを使用する方法1.方法1:listviewでandroid:listSelector="@drawable/xxxまたはlistviewのitemに属性android:background="@drawable/xxx"を構成する2.方法2:Drawable drawable=getResources().getDrawable(R.drawable.xxx);ListView.setSelector(drawable);ただし、リストが黒くなる場合があります.android:cacheColorHint="@android:color/transparent"を透明にします.関連属性:android:state_selectedはandroid:state_focusedを選択してフォーカスandroid:state_pressedはandroid:state_enabledをクリックしてイベントに応答するかどうかを設定します.すべてのイベントがこれらの状態に応じてbuttonのselector効果を設定できることを意味します.selectorを設定してbuttonの文字状態を変更することもできます.
二、Buttonの下のselector


    
    
    
    


Buttonは、グラデーションなどのより複雑な効果を実現することもできます.
drawable/selector.xml

       
//   button   pressed       。 
          
            
            
             
             
           
 
//   button   focus     
             
            
            
               
             
        
 
 

最後にbuttonを含むxmlファイルに2つ追加する必要があります.例えばmain.xmlファイル、android:focusable="true" android:background="@drawable/selector"を2つ追加する必要があります
説明:gradient--カラーランプに対応します.startcolor、endcolorはあまり言わない.Android:angleとは、どの角度から変化するかを指します.solid--塗りつぶします.stroke--線を描きます.Corners--フィレット.「padding」--コンテンツの境界からの距離を定義します.