Button实现图文混排

Posted 范仁义

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Button实现图文混排相关的知识,希望对你有一定的参考价值。

Button实现图文混排

一、简介

本文介绍两种图文混排方式

1、android:drawableTop="@drawable/star"实现文字上有图片

当然有上下左右等等

2、SpannableString的ImageSpan实现图文混排

 

二、代码实例

效果图:

一二三四是用的第一种方式

下面的用的第二种方式

 

代码:

fry.Activity02

 1 package fry;
 2 
 3 import com.example.buttonDemo1.R;
 4 
 5 import android.app.Activity;
 6 import android.graphics.BitmapFactory;
 7 import android.os.Bundle;
 8 import android.text.Spannable;
 9 import android.text.SpannableString;
10 import android.text.style.ImageSpan;
11 import android.view.MotionEvent;
12 import android.view.View;
13 import android.view.View.OnClickListener;
14 import android.view.View.OnFocusChangeListener;
15 import android.view.View.OnTouchListener;
16 import android.widget.Button;
17 
18 public class Activity02 extends Activity  {
19     private Button btn_big;
20     @Override
21     protected void onCreate(Bundle savedInstanceState) {
22         // TODO Auto-generated method stub
23         super.onCreate(savedInstanceState);
24         setContentView(R.layout.activity02);
25         btn_big=(Button) findViewById(R.id.btn_big);
26         
27         //SpannableString的ImageSpan添加左边图片
28         SpannableString spannableString1=new SpannableString("left");
29         ImageSpan imageSpan=new ImageSpan(this, BitmapFactory.decodeResource(getResources(), R.drawable.image_left));
30         spannableString1.setSpan(imageSpan, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
31         
32         //SpannableString的ImageSpan添加右边图片
33         SpannableString spannableString2=new SpannableString("right");
34         ImageSpan imageSpan2=new ImageSpan(this, BitmapFactory.decodeResource(getResources(), R.drawable.image_right));
35         spannableString2.setSpan(imageSpan2, 0, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
36         
37         btn_big.append(spannableString1);
38         btn_big.append("我的按钮");
39         btn_big.append(spannableString2);
40     }
41 }

/buttonDemo1/res/layout/activity02.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6     
 7     <LinearLayout 
 8         android:layout_width="match_parent"
 9         android:layout_height="wrap_content"
10         android:orientation="horizontal"
11         >
12         
13         <!--android:drawableTop="@drawable/star"实现文字上有图片  -->
14         <Button
15             android:layout_width="wrap_content"
16             android:layout_height="wrap_content"
17             android:text="一" 
18             android:drawableTop="@drawable/star"
19             />
20         
21         <!--android:drawablePadding="30dp实现文字和文字上的图片中间有30dp的空隙  -->
22         <Button
23             android:layout_width="wrap_content"
24             android:layout_height="wrap_content"
25             android:text="二" 
26             android:drawableTop="@drawable/star"
27             android:drawablePadding="30dp"
28             />
29         
30         <Button
31             android:layout_width="wrap_content"
32             android:layout_height="wrap_content"
33             android:text="三" 
34             android:drawableRight="@drawable/star"
35             />
36         
37         <Button
38             android:layout_width="wrap_content"
39             android:layout_height="wrap_content"
40             android:text="四" 
41             android:drawableLeft="@drawable/star"
42             />
43     </LinearLayout>
44     
45     <Button 
46         android:id="@+id/btn_big"
47         android:layout_width="180dp"
48         android:layout_height="200dp"
49         
50         />
51     
52 </LinearLayout>

 

以上是关于Button实现图文混排的主要内容,如果未能解决你的问题,请参考以下文章

iOS 表情键盘+gif聊天图文混排,看我的就够了

经验之谈—正則表達式实现图文混排

CoreText实现图文混排之点击事件

UGUI-图文混排方案

unity实战之TextMeshPro实现聊天图文混排

unity实战之TextMeshPro实现聊天图文混排