Android笔记:TextView和编辑框中添加图片,ImageSpan,SpannableStringBuilder用法

在TextView或者编辑框EditText中添加图片的方法,代码如下:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import android.os.Bundle;
import android.app.Activity;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.ImageSpan;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity
{
    
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        TextView tv = (TextView) findViewById(R.id.tv);
        String str = "sdfasd★fasljeojg★fad falsdkjf★asjdkf alsdj★foawpjf sajfadsjf ladjfa ls";
        
        SpannableStringBuilder builder = new SpannableStringBuilder(str); 
        String flag = "★";
        Pattern pattern = Pattern.compile(flag);
        Matcher matcher = pattern.matcher(str);
        while (matcher.find())
        {
            builder.setSpan(new ImageSpan(this, R.drawable.ic_launcher), matcher.start(), matcher.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
            
        }
        tv.setText(builder);
        
        
        EditText ed = (EditText) findViewById(R.id.editText1);
        ed.setText(builder);
        
    }
}

布局文件代码如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/tv"
        android:layout_marginTop="63dp"
        android:ems="10" >

        <requestFocus />
    </EditText>

</RelativeLayout>

效果图:

时间: 2024-10-12 04:10:09

Android笔记:TextView和编辑框中添加图片,ImageSpan,SpannableStringBuilder用法的相关文章

【Android笔记】EditText密码框中字体和普通输入框不同

用户名和密码框的英文字体是不同的,遇到情况请看下图: 解决办法: xml中去掉: 1 android:password="true" java中: 1 EditText password = (EditText) findViewById(R.id.register_password_text); 2 password.setTypeface(Typeface.DEFAULT); 3 password.setTransformationMethod(new PasswordTransf

[转]Android使用WebView从相册/拍照中添加图片

原地址:http://blog.csdn.net/djcken/article/details/46379929 解决这个问题花了很长时间搜索了解,网上大部分使用openFileChooser但都没解决一个存在的问题.就是当弹出选择图片/相机框之后,取消选择,就再也不能点击选择按钮了.这篇文章是为了记录这一点,为验证整个流程部署了后端,但是由于很久没接触后端,后端代码是网上的列子,所以后端代码和部署就不说了.单纯的说下Android端的解决方案. 自定义两个文件: [java] view pla

在TextView中添加图片

TextView是一个很强大的控件,有时需要在一个控件中同时显示图片和文字,使用TextView很容易实现. 方法一: 聊天软件比如QQ一般都会有发送表情的功能,使用SpannableString+ImageSpan可以很容易实现 [java] view plaincopy private void showImageFace(String s,View v) { Bitmap bitmap; ImageSpan imageSpan; // 创建一个SpannableString对象,以便插入用

如何在编辑框中使用IAutoComplete接口(转载)

出自:http://www.vckbase.com/index.php/wv/27.html 如果可能我想用打包类来实现.唉!,就叫我封装先生吧. 你算是找对地方了.但是我要先声明我的解决办法不是你所希望的-甚至也不是我自己所希望的! 什么是autocomplete呢?你也许已经注意到当你在IE的地址编辑框中敲入什么东西的时候,就会出现一个下拉组合框显示所有匹配敲入字符的URLs,亮条落在第一个匹配项上,你只要按下回车键就可以了(图一).在“文件/打开”对话框及Windows其它地方也有相同的效

MFC 编辑框中字体大小改变,行高不能改变,只能显示一半的问题,已解决。

CKagulaCEdit是CEdit的一个继承类,m_edit的CKagulaCEdit类型的一个变量 调用的时候,是这样的: 编辑框中字体大小改变,行高不能改变,只能显示一半的问题,问题如下: 这时的显示是这样的: 添加 CEdit::SetFont(m_pfont);这行后, 显示正常:

取得窗口句柄和标题,跨类调用并实时显示在编辑框中(VS2010)

接上篇日志. 在WM_LBUTTONUP消息响应函数中写入代码: POINT pnt; WCHAR  wc_TargtWndTittle[200]; ::GetCursorPos(&pnt);      HWND h_TargetWnd = ::WindowFromPoint(pnt) ; //取得鼠标指针处窗口句柄;      ::GetWindowText(h_TargetWnd,wc_TargtWndTittle,200); 将wc_TargtWndTittle显示在对话框程序的编辑框控件

101在检索框中添加一个书签按钮(扩展知识:在检索框中添加一个范围条)

效果如下: ViewController.h 1 #import <UIKit/UIKit.h> 2 3 @interface ViewController : UITableViewController<UISearchBarDelegate> 4 @property (strong, nonatomic) UISearchBar *searchBar; 5 @property (strong, nonatomic) NSMutableArray *mArrDataSourceO

Android已有的原生Camera框架中添加自己的API的实现方案。

在过去的2个月里,基本定制并评估完了项目所需要的基本需求,围绕着全志A31和Android4.2.2来实现.最近由于需要,在修改他的Camera的架构中,需要应用程序给HAL透传一个参数来控制底层图像处理算法的实现,即需要提供一个合理的API供APP的开发使用. 起初想到的,最简单有效的方法就是重新定制SDK,但不断遇到的问题,使得最终切换了部分的思路,但核心没有发生变化. Android系统的架构层次分明,在复杂的架构中往往理解以后会变得十分的简单,现在看来,过去2个多月的时间基本把Camer

JavaScript向select下拉框中添加和删除元素

JavaScript向select下拉框中添加和删除元素 1.说明 a   利用append()方法向下拉框中添加元素 b   利用remove()方法移除下拉框中最后一个元素 2.设计源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xm