• 在TextView中加入图片


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

    方法一:

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

    1. private void showImageFace(String s,View v)  
    2.     {  
    3.         Bitmap bitmap;  
    4.         ImageSpan imageSpan;  
    5.         // 创建一个SpannableString对象,以便插入用ImageSpan对象封装的图像  
    6.         SpannableString spannableString = new SpannableString(s);  
    7.         for(int i=0;i<name.length;i++)  
    8.         {  
    9.             Log.i("MainActivity""查找:"+name[i]);  
    10.             int j=0;  
    11.             int start=0;  
    12.             while(s.indexOf(name[i],start)>=0)  
    13.             {  
    14.                 start = s.indexOf(name[i],start);  
    15.                 bitmap = BitmapFactory.decodeResource(getResources(), ids[i]);  
    16.                 imageSpan = new ImageSpan(this, bitmap);  
    17.                 // 用ImageSpan对象替换字符  
    18.                 spannableString.setSpan(imageSpan, start-1, start+2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);     
    19.                 start=start+3;  
    20.             }  
    21.         }  
    22.         ((TextView)v).setText(spannableString);  
    23.     }  
    注:有时须要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,能够借助SpannableString对象实现


    方法二:

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

    1. <TextView  
    2.         android:layout_width="wrap_content"  
    3.         android:layout_height="wrap_content"  
    4.         android:drawableLeft="@drawable/jface_fastcry"  
    5.         android:drawableBottom="@drawable/jface_giddy"  
    6.         android:drawableRight="@drawable/jface_girl_cute"  
    7.         android:drawableTop="@drawable/jface_girl_cry"  
    8.         android:gravity="center_vertical|center_horizontal"  
    9.         android:text="中间"  
    10.        />  

    方法三:

    扩展TextView控件,复写onDraw方法

    1. protected void onDraw(Canvas canvas)   
    2.     {  
    3.         // TODO Auto-generated method stub  
    4.         super.onDraw(canvas);  
    5.         if(bitmap!=null)  
    6.         {  
    7.             canvas.drawBitmap(bitmap, 00null);  
    8.             Paint paint =new Paint();  
    9.             paint.setColor(0x77000000);  
    10.             canvas.drawRect(0, getHeight()-getTextSize()-getTextSize()/3,   
    11.                     getWidth(), getHeight(), paint);      
    12.         }  
    13.         if(text!=null)  
    14.         {  
    15.             Paint paint =new Paint();  
    16.             paint.setColor(Color.WHITE);  
    17.             canvas.drawText(text, (getWidth()-text.length()*getTextSize())/2,  
    18.                     getHeight()-getTextSize()/3, paint);  
    19.         }  
    20.           
    21.     }  

    效果图片:



    代码链接:http://download.csdn.net/detail/tangnengwu/7238325
  • 相关阅读:
    ToString 格式化数值
    肾积水
    十月一日
    9月27日 星期六
    080929 气温骤降
    東京の空
    9月26日 星期五
    9月30日 星期二
    粉蓝房子&电影
    080922 雨
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4348320.html
Copyright © 2020-2023  润新知