在TextView中加入图片

it2025-08-05  20

TextView是一个非常强大的控件,有时须要在一个控件中同一时候显示图片和文字,使用TextView非常easy实现。

方法一:

聊天软件比方QQ一般都会有发送表情的功能,使用SpannableString+ImageSpan能够非常easy实现

[java] view plain copy 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);      }   注:有时须要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,能够借助SpannableString对象实现

方法二:

在XML文件里直接配置即可了

[html] view plain copy <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 plain copy protected void onDraw(Canvas canvas)       {          // TODO Auto-generated method stub          super.onDraw(canvas);          if(bitmap!=null)          {              canvas.drawBitmap(bitmap, 00null);              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);          }                }  

效果图片:

代码链接: http://download.csdn.net/detail/tangnengwu/7238325

转载于:https://www.cnblogs.com/bhlsheji/p/4348320.html

相关资源:TextView中添加图片
最新回复(0)