Android带文字的ImageButton实现

发布于 2022-09-30 11:46:26 字数 6994 浏览 13 评论 0

转:天狼星主

Android带文字的ImageButton实现

实际上,ImageButton是不能添加文字的,所以我选择将ImageView控件和TextView控件封装在一个LinearLayout里面,整个LinearLayout就是一个按钮,然后对它监听单击等动作。

首先贴上layout.xml里面的布局设计:
view sourceprint?

  1. 01 <LinearLayout
  2. 02         android:layout_width="wrap_content"
  3. 03         android:layout_height="wrap_content"
  4. 04         android:orientation="vertical"
  5. 05         android:id="@+id/bt">  
  6. 06         <ImageView
  7. 07             android:id="@+id/ib"
  8. 08             android:layout_width="wrap_content"
  9. 09             android:layout_height="wrap_content"
  10. 10             android:src="@drawable/ringlove"
  11. 11             android:background="#00000000"
  12. 12         />  
  13. 13         <TextView
  14. 14             android:id="@+id/tv"
  15. 15             android:layout_width="wrap_content"
  16. 16             android:layout_height="wrap_content"
  17. 17             android:text="@string/cs"
  18. 18             android:paddingLeft="20px"
  19. 19         />  
  20. 20 </LinearLayout>

复制代码然后是java代码实现:(注意,m_ll.setClickable(true);这句一定不能少)
view sourceprint?

  1. 01 package com.droidX.wcs233;  
  2. 02   
  3. 03 import android.app.Activity;  
  4. 04 import android.graphics.Color;  
  5. 05 import android.os.Bundle;  
  6. 06 import android.view.MotionEvent;  
  7. 07 import android.view.View;  
  8. 08 import android.view.View.OnClickListener;  
  9. 09 import android.view.View.OnTouchListener;  
  10. 10 import android.widget.LinearLayout;  
  11. 11 import android.widget.Toast;  
  12. 12   
  13. 13 public class testActivity extends Activity {  
  14. 14     LinearLayout m_ll;  
  15. 15     /** Called when the activity is first created. */
  16. 16     @Override
  17. 17     public void onCreate(Bundle savedInstanceState) {  
  18. 18         super.onCreate(savedInstanceState);  
  19. 19         setContentView(R.layout.main);  
  20. 20         m_ll=(LinearLayout)findViewById(R.id.bt);  
  21. 21         m_ll.setClickable(true);  
  22. 22         m_ll.setOnClickListener(ocl);  
  23. 23         m_ll.setOnTouchListener(otl);  
  24. 24     }  
  25. 25        
  26. 26     public OnClickListener ocl=new OnClickListener() {  
  27. 27            
  28. 28         @Override
  29. 29         public void onClick(View v) {  
  30. 30             // TODO Auto-generated method stub  
  31. 31             Toast.makeText(getApplicationContext(), "yes", Toast.LENGTH_SHORT).show();  
  32. 32         }  
  33. 33     };  
  34. 34        
  35. 35     public OnTouchListener otl=new OnTouchListener() {  
  36. 36            
  37. 37         @Override
  38. 38         public boolean onTouch(View v, MotionEvent event) {  
  39. 39             // TODO Auto-generated method stub  
  40. 40             if(event.getAction()==MotionEvent.ACTION_DOWN)  
  41. 41             {  
  42. 42                 m_ll.setBackgroundColor(Color.rgb(127,127,127));  
  43. 43             }  
  44. 44             else if(event.getAction()==MotionEvent.ACTION_UP)  
  45. 45             {  
  46. 46                 m_ll.setBackgroundColor(Color.TRANSPARENT);  
  47. 47             }  
  48. 48             return false;  
  49. 49         }  
  50. 50     };  
  51. 51 }

复制代码这样就可以了。
另外,为了使“按钮”美观,大家在选择图片的时候,尽量选择长宽不一样的,适合需要的比例,这样配着文字,刚好可以使“按钮”呈正方形。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文