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>
时间: 2024-10-28 02:57:57

Button实现图文混排的相关文章

Android Json数据的解析+ListView图文混排+缓存算法Lrucache 仿知乎

前几天心血来潮,打算根据看知乎的API自己做一个小知乎,定制的过程遇到ListView的优化问题及图片未缓存重加载等等许多问题,解决了以后打算和博友分享一下. 接口数据:http://api.kanzhihu.com/getpostanswers/20150925/archive 首先,Json数据太常用,相信每一位开发者Json的解析都是必备的.我们要准备以下知识: JavaBean,枚举你需要的元素,用来存储数据. 异步加载网络内容的必备途径,多线程加载+AsyncTask两种方式. Jso

EditText图文混排

下面就具体说一下我遇到的问题,首先是EditText里面的图文混排问题,这个问题的难点就是三点: 1.怎么插图片 2.怎么保存插入的图片和文字 3.怎么解析回图片和文字 解决: 一.怎么插入图片 在这里定义了两个Button按钮和一个EditText,插入图片的话,就是点击插入图片按钮然后从sd卡中选择一张图片出来.下面是实现代码: 首先是button的监听事件: btn_insertImage.setOnClickListener(new OnClickListener() { @Overri

IOS总结_实现UIButton的图文混排(二)

很久没有写博客了,之前写过一篇关于UIButton图文混排的,但是有点复杂,今天来一个比较简单地,相信大家回用得着 UIButton *button=[[UIButton alloc] initWithFrame:CGRectMake(60, 90, 100, 40)]; //加文字 [button setTitle:@"描述文字" forState:UIControlStateNormal]; [button setTitleColor:[UIColor redColor] forS

android 你所不知道的类SpannableStringBuilder的总结--实现图文混排,查看更多,下划线等等

今天无意中看到的一个类SpannableStringBuilder,查了下感觉很牛叉: 1.看下实现的效果 第一种 引用自:使用android SpannableStringBuilder实现图文混排,查看更多 第二种 实现的代码见   使用的模板 2.简单的使用模板: 引用自  http://blog.it985.com/14433.html public class MainActivity extends Activity implements OnClickListener { priv

Android图文混排-实现EditText图文混合插入上传

前段时间做了一个Android会议管理系统,项目需求涉及到EditText的图文混排,如图: 在上图的"会议详情"中.须要支持文本和图片的混合插入,下图演示输入的演示样例: 当会议创建完毕以后,保存数据到server.然后查看刚刚创建好的会议.如图: 一.明白需求 首先.点击"会议详情"文本框中,正常输入文本,然后点击左下角的图片图标.进入系统的相冊用来选择一张图片并插入到文本框中,你还能够将光标停留在随意的文字中间,完毕图片的插入.回退建即能够逐个删除文字,也能够

IOS总结_实现UIButton的图文混排,同时显示文字和图片

我们常常需要用到按钮需要文字和图片同时显示,例如: 我们需要定义一个UIButton的子类 实现文件 - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { //可根据自己的需要随意调整 self.titleLabel.textAlignment=NSTextAlignmentRight; self.titleLabel.font=[UIFont systemFontOfSize:14

XMPP键盘订制实现图文混排

在现阶段的通信服务中,各种标准都有,因此会出现无法实现相互连通,而XMPP(Extensible Message and presence Protocol)协议的出现,实现了整个及时通信服务协议的互通.有了这个协议之后,使用任何一个组织或者个人提供的即使通信服务,都能够无障碍的与其他的及时通信服务的用户进行交流.例如google 公司2005年推出的Google talk就是一款基于XMPP协议的即时通信软件.在前面的系列博文中,我们介绍了XMPP的详细使用(查看系列文章:http://www

图文混排原理实现及应用

CTFrame作为一个整体的画布,其中由行(CTLine)组成,每行可以分为一个或多个小方块(CTRun),属性一样的字符就分在一个小方块里. 因为绘制只是显示,其他需要的额外操作,如响应相关点击事件原理:CTFrame包含了多个CTLine,并且可以得到每个line的起始位置与大小,计算出你响应的区域范围,然后根据你点击的坐标来判断是否在响应区.再如图片显示原理:先用空白占位符来把位置留出来,然后再添加图片 富文本绘制 富文本绘制步骤: 先需要一个StringA 把StringA转换成attr

(一一一)图文混排基础 -利用正则分割和拼接属性字符串

很多时候需要用到图文混排,例如聊天气泡中的表情,空间.微博中的表情,例如下图: 红心和文字在一起. 比较复杂的情况是表情夹杂在文字之间. 要实现这种功能,首先要介绍iOS中用于显示属性文字的类. 用于文字显示的类除了text属性之外,还有attributedText属性,这个属性是NSAttributedString类型,通过这个属性可以实现不同文字的不同字体.颜色甚至把图片作为文字显示的功能. 下面介绍这个字符串的使用. 以一条微博内容为应用场景,介绍如何从中找出表情.话题等内容,其中表情替换