【Android】图文混排

2014年11月22日23:20:36

Android 中图文混排的方法

安卓开发课程设计中需要用到图文混排,这里为了方便保存,尽量希望能够在 EditText中插入图片。根据网上的资料,可以使用 SpannableString和 ImageSpan 在 EditText 中插入图片。

为了充分了解其中的过程,这里做一个分析笔记。

一、已经成功的方案

使用 Intent 调用系统自带的 Gallery 应用获得一个照片,进行解析插入操作。

1 Uri originalUri = intent.getData();
2 Bitmap originalBitmap = BitmapFactory.decodeStream(resolver.openInputStream(originalUri));

这一段中首先从 Intent 中获得了 原始的 Uri 路径,然后使用 BitmapFactory.decodeStream方法解析了这个 Uri。

Uri

Web 上可用的每种资源(HTML文档、图像、视频片段、程序等)通过一个资源标识符(Universal Resource Identifier,URI)进行定位。

Android 上的 Uri 由以下三部分组成:"content://"、数据的路径,标志 ID(可选) 

1 private SpannableString getBitMapMime(Bitmap Pic, Uri uri){
2     String path = uri.getPath();
3     SpannableString spanStr = new SpannableString(path);
4     ImageSpan span = new ImageSpan(this, Pic);
5     spanStr.setSpan(span, 0, path.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
6     return spanStr;
7 }

函数解析:

此函数用于建立一个 SpannableString,传入的参数是一个 Pic 和一个 Uri

SpannableString 

构造方式

SpannableString SpanStr = new SpannableString("string");

 其中的 ”string “可以是任意字符串。

ImageSpan

将一个Bitmap 转化成一个 ImageSpan,这样可以替换 SpannableString 中的相应文字,比如 String。

 

 

posted @ 2014-07-14 14:40  黄天河·Solare  阅读(607)  评论(0编辑  收藏  举报