首页 > 解决方案 > 我没有找到任何关于将所有图像获取到 html 网页的代码

问题描述

我尝试了很多方法,但没有成功,我知道使用的First();方法,我的意思是不能创建循环,无论如何,相关网页在这里:http ://www.planecrashinfo.com/recent.htm 谢谢已经是我的新代码了,下面我不知道我是如何同步他说的

private class FetchImageLogo extends AsyncTask<Void, Void, Void> {

        Bitmap bitmap;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            progressDialog = new ProgressDialog(MainActivity.this);
            progressDialog.setTitle("LOGO");
            progressDialog.setMessage("Logo Çekiliyor...");
            progressDialog.setIndeterminate(false);
            progressDialog.show();
        }

        @Override
        protected Void doInBackground(Void... params) {

            try{
                getAllImages(yemekURL);

                for (int i = 0; i < imagesURLs.size(); i++) {
                    Glide.with(activity_main)
                            .load(imagesURLs.get(i))
                            .diskCacheStrategy(DiskCacheStrategy.NONE)
                            .skipMemoryCache(true)
                            .into(resimler);
                }
                /*
                Document doc  = Jsoup.connect(yemekURL).get();
                Element link = doc.select("img").first();
                String absHref = link.attr("abs:src"); // "http://jsoup.org/"
                InputStream input = new java.net.URL(absHref).openStream();
                bitmap = BitmapFactory.decodeStream(input);*/




            }catch (Exception e){

                e.printStackTrace();
            }


            return null;
        }
        ArrayList<String> getAllImages(String url) {




            try {
                doc = Jsoup.connect(url).get();
            } catch (IOException e) {
                // ToDo "Can not connect the URL, Make sure that the URL starts with [http://...]"
                return null;
            }

            Elements media = doc.select("[src]");
            Element link = doc.select("img").first();
            for (Element src : media) {
                if (src.tagName().equals("img")) {
                    // Add images url to the list
                    imagesURLs.add(link.attr("abs:src"));
                }
            }

            return imagesURLs;
        }
        @Override
        protected void onPostExecute(Void aVoid) {

            logo_layout = (LinearLayout)findViewById(R.id.logo_layout);
            ImageView img_logo = (ImageView)findViewById(R.id.img_logo);
            logo_layout.setVisibility(View.VISIBLE);
            img_logo.setImageBitmap(bitmap);
            progressDialog.dismiss();
        }

我不知道我在写什么代码 beetwen scopsGlide.with(***activity_main***)

标签: javaandroidjsoup

解决方案


  1. 您需要将其添加到您的应用程序标签之外AndroidManifest.xml才能访问 Internet。

    <uses-permission android:name="android.permission.INTERNET" />

  2. GlideJsoup库添加到您的项目中。

  3. activity_main.xml

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="First Image"
        android:gravity="center"
        android:textSize="18sp"/>
    
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    
  4. MainActivity.java

    private ProgressDialog progressDialog;
    private ImageView imageView;
    private ArrayList<String> imagesURLs = new ArrayList<>();
    private String firstImgURL = "";
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_download_images);
    
        imageView = findViewById(R.id.imageView);
    
        new FetchImageLogo().execute();
    }
    
    private class FetchImageLogo extends AsyncTask<Void, Void, Void> {
        //Bitmap bitmap;
    
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
    
            progressDialog = new ProgressDialog(MainActivity.this);
            progressDialog.setTitle("LOGO");
            progressDialog.setMessage("Logo Çekiliyor...");
            progressDialog.setIndeterminate(false);
            progressDialog.show();
        }
    
        @Override
        protected Void doInBackground(Void... params) {
            String yemekURL = "http://www.planecrashinfo.com/recent.htm";
    
            try {
                imagesURLs = getAllImages(yemekURL);
    
                // Can not get images URLs
                if (imagesURLs == null) return null;
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            // Display the first image...
            // you have to put your code in runOnUiThread() to reach UI components
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Glide.with(MainActivity.this)
                            .load(firstImgURL)
                            .diskCacheStrategy(DiskCacheStrategy.NONE)
                            .skipMemoryCache(true)
                            .into(imageView);
                }
            });
    
    
            final StringBuilder stringBuilder = new StringBuilder();
            for (int i = 0; i < imagesURLs.size(); i++) {
                // ToDo: you need to create [RecyclerView] to display all images
                /*runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Glide.with(MainActivity.this)
                                .load(imagesURLs.get(i))
                                .diskCacheStrategy(DiskCacheStrategy.NONE)
                                .skipMemoryCache(true)
                                .into(imageView);
                    }
                });*/
    
                stringBuilder.append("img").append(String.valueOf(i + 1)).append(": ")
                        .append(imagesURLs.get(i)).append("\n");
            }
    
            // See -> Logcat
            Log.d("Debug_Images", stringBuilder.toString());
    
            return null;
        }
    
        ArrayList<String> getAllImages(String url) {
            Document doc;
    
            try {
                doc = Jsoup.connect(url).get();
            } catch (IOException e) {
                // ToDo "Can not connect the URL, Make sure that the URL starts with [http://...]"
                return null;
            }
    
            // Get the first image URL
            Element link = doc.select("img").first();
            firstImgURL = link.attr("abs:src");
    
            // Get all images URLs
            Elements media = doc.select("[src]");
            for (Element img : media) {
                if (img.tagName().equals("img")) {
                    // Add images url to the list
                    imagesURLs.add(img.attr("abs:src"));
                }
            }
    
            return imagesURLs;
        }
    
        @Override
        protected void onPostExecute(Void aVoid) {
            /*logo_layout = (LinearLayout) findViewById(R.id.logo_layout);
            ImageView img_logo = (ImageView) findViewById(R.id.img_logo);
            logo_layout.setVisibility(View.VISIBLE);
            img_logo.setImageBitmap(bitmap);*/
            progressDialog.dismiss();
        }
    }
    

推荐阅读