android中EditText插入用户名(块)效果(EditText插入图片)
来源:互联网 发布:eview触摸屏软件 编辑:程序博客网 时间:2024/06/06 01:13
android中EditText插入用户名(块)效果(EditText插入图片)
分类: android常见问题2013-07-23 15:01 730人阅读 评论(1) 收藏 举报
EditText
项目中需要这个效果:
就和人人网@用户的效果一样,一直没有思路,不知道怎样去完成这个功能。
后来想到一个想法就是使用Spannable完成,设置文字的背景色来达到这个效果,但删除不能删除整个用户名,会一个字一个字的删除。
后来偶然想到了使用ImageSpan来完成这个功能,就相当于在EditText中插入图片,要实现这个主要有两个问题:
1、字符串转换为图片。
2、EditText插入图片。
代码如下:
- /**
- * 获取图片并插入EditText
- */
- private void insertEditText(String str){
- Bitmap imgBitmap = Str2Bit.createBitmap(str);
- if(imgBitmap != null){
- //根据Bitmap对象创建ImageSpan对象
- ImageSpan imageSpan = new ImageSpan(MainActivity.this, imgBitmap);
- //创建一个SpannableString对象,以便插入用ImageSpan对象封装的图像
- SpannableString spannableString = new SpannableString("[name]"+str+"[/name]");
- // 用ImageSpan对象替换face
- spannableString.setSpan(imageSpan, 0, ("[name]"+str+"[/name]").length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- //将选择的图片追加到EditText中光标所在位置
- int index = editText.getSelectionStart(); //获取光标所在位置
- Editable edit_text = editText.getEditableText();
- if(index <0 || index >= edit_text.length()){
- edit_text.append(spannableString);
- }else{
- edit_text.insert(edit_text.length(), spannableString);
- }
- }else{
- Log.i("MainActivity", "插入失败");
- }
- }
- /**
- * 字符串转换成图片
- * @param str
- * @return
- */
- public static Bitmap createBitmap(String str) {
- Bitmap bp = Bitmap.createBitmap(60, 30, Config.ARGB_8888); //画布大小
- Canvas c = new Canvas(bp);
- Paint paint1 = new Paint();
- paint1.setColor(Color.BLACK);
- c.drawColor(Color.BLUE);//画布颜色
- Paint paint2 = new Paint();//画姓名前边的间隔
- paint2.setColor(Color.WHITE);
- paint2.setStrokeWidth(1f);
- c.drawLine(0, 0, 0, 30, paint2);
- Paint paint = new Paint();
- paint.setTextSize(20);//字体大小
- paint.setColor(Color.BLACK);//字体大小
- paint.setFakeBoldText(true); //粗体
- paint.setTextSkewX(0);//斜度
- paint.setTextAlign(Paint.Align.CENTER);
- c.drawText(str, 30, 20, paint);//文字位置
- c.save( Canvas.ALL_SAVE_FLAG );//保存
- c.restore();//
- return bp;
- }
0 0
- android中EditText插入用户名(块)效果(EditText插入图片)
- android中EditText插入用户名(块)效果(EditText插入图片)
- android Edittext中插入图片!!!
- 在EditText中插入表情(图片)
- android edittext插入图片
- EditText中插入图片
- editText中动态插入图片
- 在EditText中插入图片
- android EditText中插入tag
- EditText 里面插入图片
- EditText 插入图片表情
- EditText插入图片,
- EditText插入图片
- EditText插入图片
- Android EditText中插入图片,比如做表情发送
- android editText 插入表情,或者是图片
- 在editText中动态插入图片
- 在editText中动态插入图片
- C++ 复制构造函数和赋值运算符重载函数
- Android编码规范风格指导(翻译)
- 计算二叉树宽度——层次遍历
- 4/28纪实——HCBA项目
- 在facebook上做app, 需要提交privacy policy url的解决办法
- android中EditText插入用户名(块)效果(EditText插入图片)
- [漏洞分析] BEdita CMS 3.5.0中存储型XSS与CSRF漏洞分析
- 2754: C++习题-快速排序
- 在main()之前,IAR都做了些什么工作
- 《佐贺的超级阿嬷》读后感
- Java知识(006)--数组
- 黑马程序员—【Java高新技术】之反射
- 关于myeclipse 连接 sql server
- Cell中实现高效的下载图片及强大的SDWebImage(2015428)