• Android TextView图文混合编排


    Android TextView图文混合编排

    实现技术细节不难,两个要点:
    1、html代码的混合编写。
    2,重写ImageGetter。


    例如:
    布局:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="zhangphil.app.MainActivity">
    
        <TextView
            android:id="@+id/text1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
        <TextView
            android:id="@+id/text2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
        <TextView
            android:id="@+id/text3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ellipsize="end"
            android:maxLines="1" />
    
        <TextView
            android:id="@+id/text4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ellipsize="end"
            android:maxLines="1" />
    </LinearLayout>
    



    Java代码:
    package zhangphil.app;
    
    import android.graphics.drawable.Drawable;
    import android.support.v4.content.ContextCompat;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.text.Html;
    import android.widget.TextView;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            TextView text1 = (TextView) findViewById(R.id.text1);
            TextView text2 = (TextView) findViewById(R.id.text2);
            TextView text3 = (TextView) findViewById(R.id.text3);
            TextView text4 = (TextView) findViewById(R.id.text4);
    
            String s = "zhang phil @ csdn Android TextView图文混编";
    
            CharSequence cs1 = Html.fromHtml(stringMixWithImage1(s), imgageGetter, null);
            text1.setText(cs1);
    
            CharSequence cs2 = Html.fromHtml(stringMixWithImage2(s), imgageGetter, null);
            text2.setText(cs2);
    
            CharSequence cs3 = Html.fromHtml(stringMixWithImage3(s), imgageGetter, null);
            text3.setText(cs3);
    
            CharSequence cs4 = Html.fromHtml(stringMixWithImage4(s), imgageGetter, null);
            text4.setText(cs4);
        }
    
        private String stringMixWithImage1(String string) {
            return string + "1 " + "<img src='" + R.mipmap.ic_launcher + "'/>" + " " + "<img src='" + R.mipmap.ic_launcher + "'/>" + " " + "<img src='" + R.mipmap.ic_launcher + "'/>" + " ";
        }
    
        private String stringMixWithImage2(String string) {
            return "2 " + "<img src='" + R.mipmap.ic_launcher + "'/>" + " " + "<img src='" + R.mipmap.ic_launcher + "'/>" + " " + "<img src='" + R.mipmap.ic_launcher + "'/>" + " " + string;
        }
    
        private String stringMixWithImage3(String string) {
            return string + "3 " + "<img src='" + R.mipmap.ic_launcher + "'/>" + " " + "<img src='" + R.mipmap.ic_launcher + "'/>" + " " + "<img src='" + R.mipmap.ic_launcher + "'/>" + " ";
        }
    
        private String stringMixWithImage4(String string) {
            return "4 " + "<img src='" + R.mipmap.ic_launcher + "'/>" + " " + "<img src='" + R.mipmap.ic_launcher + "'/>" + " " + "<img src='" + R.mipmap.ic_launcher + "'/>" + " " + string;
        }
    
        private Html.ImageGetter imgageGetter = new Html.ImageGetter() {
            @Override
            public Drawable getDrawable(String source) {
                int id = Integer.parseInt(source);
                Drawable d = ContextCompat.getDrawable(getApplicationContext(), id);
                d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
                return d;
            }
        };
    }
    



    代码运行结果:


  • 相关阅读:
    未能创建可接受的游标。
    怎样修改查看Oracle字符集
    2005年国内各大公司的薪酬一览 同学发给我的,留在这里刺激一下自己,不过他说到了中国工程物理研究院(四川绵阳) 对此不表同意,具体情况我可最清楚呀,哈哈
    破解低价笔记本惊人的秘密
    Struts 的安装、配置与运行zt
    有用的数据:30款市场主流车型真实油耗一览
    JDBC连接Oracle数据库常见问题及解决方法
    查锁的方法
    用Oracle闪回功能恢复偶然丢失的数据数据被误删除了,多亏了万能的oracle,....后怕
    powerdesigner中去掉生成sql中的引号
  • 原文地址:https://www.cnblogs.com/hehehaha/p/6147240.html
Copyright © 2020-2023  润新知