zoukankan      html  css  js  c++  java
  • 在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
  • 相关阅读:
    图灵机器人聊天api
    数据结构(七)之树
    Android批量图片载入经典系列——Volley框架实现多布局的新闻列表
    OCP试题解析之053-17 CONFIGURE CONTROLFILE AUTOBACKUP ON
    深入浅出理解排序算法之-堆排序
    【转】深入理解Android的startservice和bindservice--不错
    【转】Service Intent must be explicit的解决方法
    【转】Win7+Ubuntu12.04.1硬盘安装错误及解决方案----不错
    【转】Win7系统下安装Ubuntu12.04(EasyBCD硬盘安装)--不错
    【转】Ubuntu重装,直接进win7,不进linux的解决方案(添加Ubuntu启动菜单)
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4348320.html
Copyright © 2011-2022 走看看