为了账号安全,请及时绑定邮箱和手机立即绑定

html.fromHtml 通过 URl 显示图片和文字

html.fromHtml 通过 URl 显示图片和文字

拉风的咖菲猫 2023-02-23 16:27:11
{    "news_content": [                "<p<table class=\"tplCaption\" style=\"padding-left: 30px;\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\" align=\"center\">\r\n<tbody>\r\n<tr>\r\n<td><img src=\"https://i-vnexpress.vnecdn.net/2019/06/06/trump-1571-1559784498.jpg\" alt=\"Tổng thống Mỹ Donald Trump. Ảnh: AP.\" data-natural-h=\"334\" data-natural-width=\"500\" data-width=\"500\" data-pwidth=\"500\" /></td>\r\n</tr>\r\n<tr>\r\n<td>\r\n<p class=\"Image\">Tổng thống Mỹ Donald Trump. Ảnh:&nbsp;<em>AP</em>.</p>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n",                "<p class=\"Normal\">\"Th&agrave;nh thật m&agrave; n&oacute;i t&ocirc;i chưa bao giờ l&agrave; người ủng hộ cuộc chiến đ&oacute;. T&ocirc;i nghĩ cuộc chiến đ&oacute; rất tồi tệ. T&ocirc;i nghĩ Việt Nam ở rất xa v&agrave; khi đ&oacute; &iacute;t người biết về đất nước n&agrave;y\", Tổng thống Mỹ Donald Trump ng&agrave;y 5/6 đề cập đến cuộc chiến tranh ở Việt Nam khi trả lời phỏng vấn nh&agrave; b&aacute;o Anh Piers Morgan về việc liệu &ocirc;ng c&oacute; thể v&agrave; c&oacute; muốn phục vụ trong qu&acirc;n đội hay kh&ocirc;ng.</p>\r\n<p class=\"Normal\">C&acirc;u trả lời của Tổng thống Trump phần n&agrave;o phản &aacute;nh quan điểm của người d&acirc;n Mỹ đối với cuộc chiến phi nghĩa ở Việt Nam v&agrave;o thập ni&ecirc;n 1960 v&agrave; 1970, khi nhiều cuộc biểu t&igrave;nh nổ ra tr&ecirc;n khắp nước Mỹ phản đối việc đưa lực lượng qu&acirc;n sự tới can thiệp ở quốc gia Đ&ocirc;ng Nam &Aacute; n&agrave;y.</p>\r\n",                "<p class=\"Normal\"><strong>Huyền L&ecirc;</strong>&nbsp;(Theo&nbsp;<em>CNN</em></p>"            ],            "news_status": 1}
查看完整描述

2 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

TextView content = mView.findViewById(R.id.content);


String myHtml = "This will display an image to the right <img src='https://i-vnexpress.vnecdn.net/2019/06/06/trump-1571-1559784498.jpg' />";



content.setText(Html.fromHtml(myHtml, Images, null));



    private Html.ImageGetter Images = new Html.ImageGetter() {


        public Drawable getDrawable(String source) {


            Drawable drawable = null;


            FetchImageUrl fiu = new FetchImageUrl(getActivity(),source);

            try {

                fiu.execute().get();

                drawable = fiu.GetImage();

            }

            catch (Exception e) {

                drawable = getResources().getDrawable(R.drawable.default_icon);

            }

            // to display image,center of screen


            if(drawable!=null) {

                int imgH = drawable.getIntrinsicHeight();

                int imgW = drawable.getIntrinsicWidth();

                int padding = 20;

                int realWidth = 700; //ScreenW-(2*padding);

                int realHeight = imgH * realWidth / imgW;

                drawable.setBounds(padding, 0, realWidth, realHeight);

            }

            return drawable;

        }

    };



    public class FetchImageUrl extends AsyncTask<String, String, Boolean> {



        String imageUrl;

        Context context;

        protected Drawable image;


        public FetchImageUrl(Context context, String url)

        {

            this.imageUrl = url;

            image = null;

            this.context = context;

        }


        public Drawable GetImage()

        {

            return image;

        }



        @Override

        protected void onPreExecute() {

            super.onPreExecute();

        }


        @Override

        protected Boolean doInBackground(String... args) {

            try {

                InputStream input_stream = (InputStream) new URL(imageUrl).getContent();

                image = Drawable.createFromStream(input_stream, "src name");

                return true;


            }

            catch (Exception e)

            {

                image = null;

            }

            return false;

        }



        @Override

        protected void onPostExecute(Boolean result) {


        }}


查看完整回答
反对 回复 2023-02-23
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

像这样使用 -


String htmlString = "<img src='ic_launcher'><i>Welcome to<i> <b><a href='http://android-coding.blogspot.com'>Android Coding</a></b>";


 @Override

 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);


  TextView htmlTextView = new TextView(this);

  setContentView(htmlTextView);


  htmlTextView.setText(Html.fromHtml(htmlString, new Html.ImageGetter(){


   @Override

   public Drawable getDrawable(String source) {

    Drawable drawable;

    int dourceId = 

      getApplicationContext()

      .getResources()

      .getIdentifier(source, "drawable", getPackageName());


    drawable = 

      getApplicationContext()

      .getResources()

      .getDrawable(dourceId);


    drawable.setBounds(

      0, 

      0, 

      drawable.getIntrinsicWidth(),

      drawable.getIntrinsicHeight());


    return drawable;

   }


  }, null));


  htmlTextView.setMovementMethod(LinkMovementMethod.getInstance());


 }


}



查看完整回答
反对 回复 2023-02-23
  • 2 回答
  • 0 关注
  • 188 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信