android 富文本图文混合 可点击图片放大查看

需求: 如题 富文本展示图文混合, 客户要求点击单个图可放大缩小查看

第三方框架:
富文本展示: html-text 地址: https://github.com/wangchenyan/html-text
图片查看: pictureviewer 地址: https://github.com/SuperKotlin/PictureViewer

上代码:

  1. 富文本的展示

      /**
       * 加载富文本
       *
       * @param taskVariablesLocal 要加载的富文本数据
       */
        private void fromText(String taskVariablesLocal) {
    
          HtmlText.from(taskVariablesLocal)
            .setImageLoader(new HtmlImageLoader() {
                @Override
                public void loadImage(String url, final Callback callback) {
                    Glide.with(FeedbackInfoActivity.this)
                            .load(url)
                            .asBitmap()
                            .into(new SimpleTarget() {
                                @Override
                                public void onResourceReady(Bitmap resource,
                                                            GlideAnimation glideAnimation) {
                                    callback.onLoadComplete(resource);
                                }
    
                                @Override
                                public void onLoadFailed(Exception e, Drawable errorDrawable) {
                                    callback.onLoadFailed();
                                }
                            });
                }
    
                @Override
                public Drawable getDefaultDrawable() {
                    return ContextCompat.getDrawable(FeedbackInfoActivity.this, R.drawable.image_placeholder_loading);
                }
    
                @Override
                public Drawable getErrorDrawable() {
                    return ContextCompat.getDrawable(FeedbackInfoActivity.this, R.drawable.image_placeholder_fail);
                }
    
                @Override
                public int getMaxWidth() {
                    return getTextWidth();
                }
    
                @Override
                public boolean fitWidth() {
                    return false;
                }
            })
            .setOnTagClickListener(new OnTagClickListener() {
                @Override
                 //  图片的点击事件
                public void onImageClick(Context context, List imageUrlList, int position) {
                        // 显示图片
                        jupActivity(position, imageUrlList);
                }
    
                @Override
                // 超链接点击事件
                public void onLinkClick(Context context, String url) {
                    // link click
                }
            })
            // tvInfo 展示富文本的textview控件
            .into(tvInfo);
    

    }

  2. 图片的展示

     private void jupActivity(int position, List list) {
         // 图片查看器
         PictureConfig picture = new PictureConfig.Builder()
             .setListData((ArrayList) list)
             .setPosition(position)
             .setIsShowNumber(true)
             .setDownloadPath("PIC")
             .needDownload(true)// 是否支持图下载
             .setPlacrHolder(R.drawable.icon_pic_placeholder)// 占位符
             .build();
           ImagePagerActivity.startActivity(this, picture);
     }
    

Ps: 搞定, 多谢大神们的开源 !

你可能感兴趣的:(android 富文本图文混合 可点击图片放大查看)