首页 > 代码库 > 在TextView中添加图片
在TextView中添加图片
TextView是一个很强大的控件,有时需要在一个控件中同时显示图片和文字,使用TextView很容易实现。
方法一:
聊天软件比如QQ一般都会有发送表情的功能,使用SpannableString+ImageSpan可以很容易实现
[java] view plaincopy
- private void showImageFace(String s,View v)
- {
- Bitmap bitmap;
- ImageSpan imageSpan;
- // 创建一个SpannableString对象,以便插入用ImageSpan对象封装的图像
- SpannableString spannableString = new SpannableString(s);
- for(int i=0;i<name.length;i++)
- {
- Log.i("MainActivity", "查找:"+name[i]);
- int j=0;
- int start=0;
- while(s.indexOf(name[i],start)>=0)
- {
- start = s.indexOf(name[i],start);
- bitmap = BitmapFactory.decodeResource(getResources(), ids[i]);
- imageSpan = new ImageSpan(this, bitmap);
- // 用ImageSpan对象替换字符
- spannableString.setSpan(imageSpan, start-1, start+2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- start=start+3;
- }
- }
- ((TextView)v).setText(spannableString);
- }
方法二:
在XML文件中直接配置就行了
[html] view plaincopy
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:drawableLeft="@drawable/jface_fastcry"
- android:drawableBottom="@drawable/jface_giddy"
- android:drawableRight="@drawable/jface_girl_cute"
- android:drawableTop="@drawable/jface_girl_cry"
- android:gravity="center_vertical|center_horizontal"
- android:text="中间"
- />
方法三:
扩展TextView控件,复写onDraw方法
[java] view plaincopy
- protected void onDraw(Canvas canvas)
- {
- // TODO Auto-generated method stub
- super.onDraw(canvas);
- if(bitmap!=null)
- {
- canvas.drawBitmap(bitmap, 0, 0, null);
- Paint paint =new Paint();
- paint.setColor(0x77000000);
- canvas.drawRect(0, getHeight()-getTextSize()-getTextSize()/3,
- getWidth(), getHeight(), paint);
- }
- if(text!=null)
- {
- Paint paint =new Paint();
- paint.setColor(Color.WHITE);
- canvas.drawText(text, (getWidth()-text.length()*getTextSize())/2,
- getHeight()-getTextSize()/3, paint);
- }
- }
效果图片:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。