Android帶文字的ImageButton實現


實際上,ImageButton是不能添加文字的,所以我選擇將ImageView控件和TextView控件封裝在一個LinearLayout里面,整個LinearLayout就是一個按鈕,然后對它監聽單擊等動作。
首先貼上layout.xml里面的布局設計:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
< LinearLayout
         android:layout_width = "wrap_content"
         android:layout_height = "wrap_content"
         android:orientation = "vertical"
         android:id = "@+id/bt" >
         < ImageView
             android:id = "@+id/ib"
             android:layout_width = "wrap_content"
             android:layout_height = "wrap_content"
             android:src = "@drawable/ringlove"
             android:background = "#00000000"
         />
         < TextView
             android:id = "@+id/tv"
             android:layout_width = "wrap_content"
             android:layout_height = "wrap_content"
             android:text = "@string/cs"
             android:paddingLeft = "20px"
         />
</ LinearLayout >
然后是java代碼實現:(注意, m_ll.setClickable(true);這句一定不能少
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.droidX.wcs233;
  
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.LinearLayout;
import android.widget.Toast;
  
public class testActivity extends Activity {
     LinearLayout m_ll;
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.main);
         m_ll=(LinearLayout)findViewById(R.id.bt);
         m_ll.setClickable( true );
         m_ll.setOnClickListener(ocl);
         m_ll.setOnTouchListener(otl);
     }
      
     public OnClickListener ocl= new OnClickListener() {
          
         @Override
         public void onClick(View v) {
             // TODO Auto-generated method stub
             Toast.makeText(getApplicationContext(), "yes" , Toast.LENGTH_SHORT).show();
         }
     };
      
     public OnTouchListener otl= new OnTouchListener() {
          
         @Override
         public boolean onTouch(View v, MotionEvent event) {
             // TODO Auto-generated method stub
             if (event.getAction()==MotionEvent.ACTION_DOWN)
             {
                 m_ll.setBackgroundColor(Color.rgb( 127 , 127 , 127 ));
             }
             else if (event.getAction()==MotionEvent.ACTION_UP)
             {
                 m_ll.setBackgroundColor(Color.TRANSPARENT);
             }
             return false ;
         }
     };
}
這樣就可以了。
另外,為了使“按鈕”美觀,大家在選擇圖片的時候,盡量選擇長寬不一樣的,適合需要的比例,這樣配着文字,剛好可以使“按鈕”呈正方形。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM