PhotoView

public class MainActivity extends AppCompatActivity {

    private String url="http://mini.eastday.com/mobile/170913032156560.html";
    private WebView wv;
    private ArrayList<String> list;


    @SuppressLint("JavascriptInterface")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list = new ArrayList<>();

        initview();
        paraseImgs();
        wv.loadUrl(url);
        wv.addJavascriptInterface(new Clicks(),"img");



    }

    private void paraseImgs() {

        new Thread(new Runnable() {
            @Override
            public void run() {


                try {
                    Document   doc = Jsoup.connect(url).get(); //强制转换为文档类型

                    Elements all = doc.getElementsByTag("img");  //获取img标签

                    for (Element img : all) {

                       list.add(img.attr("src"));//读取img标签中的src属性,获取图片

                    }

                } catch (IOException e) {
                    e.printStackTrace();
                }



            }
        }).start();
    }

    private void initview() {
        wv = (WebView) findViewById(R.id.wv);
        wv.getSettings().setJavaScriptEnabled(true);

        wv.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        wv.setWebViewClient(new WebViewClient(){
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                wv.loadUrl("javascript:(function(){" +//html文件添加图片点击事件
                        "var objs = document.getElementsByTagName(\"img\"); " +
                        "for(var i=0;i<objs.length;i++)  " +
                        "{"
                        + "    objs[i].onclick=function()  " +
                        "    {  "
                        + "        window.img.imgsClick(this.src);  " +
                        "    }  " +
                        "}" +
                        "})()");
            }
        });
    }

    class Clicks{
       @JavascriptInterface
        public void imgsClick(String imgurl){

            Intent in=new Intent(MainActivity.this,DescActivity.class);
            Bundle bundle=new Bundle();
       
            bundle.putSerializable("imgs", list);
            in.putExtras(bundle);
            startActivity(in);
        }
    }
}
 
 
 
 
public class DescActivity extends AppCompatActivity {

    private ViewPager vp;

    private ArrayList<String> list;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_desc);
        initview();
    }

    private void initview() {
        vp = (ViewPager) findViewById(R.id.vp);
        Intent intent=getIntent();
        if(intent.getExtras()!= null){
            
            list= (ArrayList<String>) intent.getExtras().getSerializable("imgs");
        }

        vp.setAdapter(new MyAda());
    //    System.out.println("xxxx另一个页面的"+list.toString());
    }

    class MyAda extends PagerAdapter{

        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view==object;
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {

            View view=View.inflate(DescActivity.this,R.layout.item,null);
            PhotoView pv=view.findViewById(R.id.pv);
            Glide.with(DescActivity.this).load(list.get(position)).into(pv);
            pv.setOnPhotoTapListener(new PhotoViewAttacher.OnPhotoTapListener() {//给图片设置点击事件,点击退出
                @Override
                public void onPhotoTap(View view, float x, float y) {
                    DescActivity.this.finish();
                }
            });

            container.addView(view);//添加父类元素
            return view;
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/zqj861791241/article/details/78012948
今日推荐