temp

来源:互联网 发布:肌研洗面奶怎么样 知乎 编辑:程序博客网 时间:2024/06/16 13:44
package com.example.administrator.mytest;import android.content.Context;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.Uri;import android.os.Environment;import android.os.Handler;import android.os.Message;import android.provider.MediaStore;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.ImageView;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;public class MainActivity extends AppCompatActivity {    Bitmap bitmap;    ImageView imageView;    Handler handler;    Button button;    List<String> urlsFromHttp;    List<String> urlsByLocal;    int totals;//表示已经转化了多少次    String sf;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        totals = 0;        urlsFromHttp = new ArrayList<>();        sf = "测试文字<img src='http://120.26.113.179:8089/UploadFiles/201704/05/1d15996e-4dba-4f84-9829-ac5c9771c4cc.png'>测试文字<img src='http://120.26.113.179:8089/UploadFiles/201704/05/1d15996e-4dba-4f84-9829-ac5c9771c4cc.png'>ceshiciiiiiiiiiiii" +                "测试文字<img src='http://120.26.113.179:8089/UploadFiles/201704/05/1d15996e-4dba-4f84-9829-ac5c9771c4cc.png'>测试文字";        String[] listForAllSrcs = sf.split(".png'>");        Log.e("第一段", listForAllSrcs[0]);        urlsByLocal = new ArrayList<>();        for (int i = 0; i < listForAllSrcs.length; i++) {            String sb = listForAllSrcs[i];            if (sb.contains("<img src")) {                urlsByLocal.add("temp");                int indexForStart = sb.indexOf("<img src");                String http = sb.substring(indexForStart + 10, sb.length()) + ".png";                urlsFromHttp.add(http);                Log.e("段数" + i, http);            }        }        for (int j = 0; j < urlsFromHttp.size(); j++) {            final int finalJ = j;            new Thread() {                @Override                public void run() {                    try {                        GetImageInputStream(urlsFromHttp.get(finalJ), finalJ);                    } catch (Exception e) {                        e.printStackTrace();                    }                }            }.start();        }        /**         * 测试文字         <img src='http://120.26.113.179:8089/UploadFiles/201704/05/1d15996e-4dba-4f84-9829-ac5c9771c4cc.png'>         测试结束文字         */        button = (Button) findViewById(R.id.button);        imageView = (ImageView) findViewById(R.id.image);        handler = new Handler() {            @Override            public void handleMessage(Message msg) {                switch (msg.what) {                    case 1:                        int index = (int) msg.obj;                        imageView.setImageBitmap(bitmap);                        Log.e("图片加载完成", "加载挖槽");                        saveImageToGallery(MainActivity.this, bitmap, index);                        break;                    case 2:                        if (totals == urlsFromHttp.size()) {                            //表示全部转化完毕                            for (int i = 0; i < urlsFromHttp.size(); i++) {                                Log.e(urlsFromHttp.get(i), urlsByLocal.get(i));                                sf = sf.replace(urlsFromHttp.get(i), urlsByLocal.get(i));                            }                            Log.e("转化后的字符串", sf);                        }                        break;                    default:                        break;                }                super.handleMessage(msg);            }        };        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                new Thread() {                    @Override                    public void run() {                        try {                            ///  bitmap= BitmapFactory.decodeStream(getImageStream("http://120.26.113.179:8089/UploadFiles/201704/05/1d15996e-4dba-4f84-9829-ac5c9771c4cc.png"));                            GetImageInputStream("http://120.26.113.179:8089/UploadFiles/201704/05/1d15996e-4dba-4f84-9829-ac5c9771c4cc.png");                        } catch (Exception e) {                            e.printStackTrace();                        }                    }                }.start();            }        });    }    public void saveImageToGallery(Context context, Bitmap bmp, int index) {        // 首先保存图片        File appDir = new File(Environment.getExternalStorageDirectory(), "Boohee");        if (!appDir.exists()) {            appDir.mkdir();        }        String fileName = System.currentTimeMillis() + ".jpg";        File file = new File(appDir, fileName);        try {            FileOutputStream fos = new FileOutputStream(file);            bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos);            fos.flush();            fos.close();            Log.e("存储完成", "=====");        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        // 其次把文件插入到系统图库        try {            MediaStore.Images.Media.insertImage(context.getContentResolver(),                    file.getAbsolutePath(), fileName, null);        } catch (FileNotFoundException e) {            e.printStackTrace();        }        // 最后通知图库更新        Log.e("文件存储的路径", file.getAbsolutePath());        urlsByLocal.set(index, file.getAbsolutePath());        context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + file.getAbsolutePath())));        totals++;        handler.sendEmptyMessage(2);    }    public static void saveImageToGallery(Context context, Bitmap bmp) {        // 首先保存图片        File appDir = new File(Environment.getExternalStorageDirectory(), "Boohee");        if (!appDir.exists()) {            appDir.mkdir();        }        String fileName = System.currentTimeMillis() + ".jpg";        File file = new File(appDir, fileName);        try {            FileOutputStream fos = new FileOutputStream(file);            bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos);            fos.flush();            fos.close();            Log.e("存储完成", "=====");        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        // 其次把文件插入到系统图库        try {            MediaStore.Images.Media.insertImage(context.getContentResolver(),                    file.getAbsolutePath(), fileName, null);        } catch (FileNotFoundException e) {            e.printStackTrace();        }        // 最后通知图库更新        Log.e("文件存储的路径", file.getAbsolutePath());        context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + file.getAbsolutePath())));    }    /**     * 获取网络图片     *     * @param imageurl 图片网络地址     * @return Bitmap 返回位图     */    public Bitmap GetImageInputStream(String imageurl, int index) {        URL url;        HttpURLConnection connection = null;        bitmap = null;        try {            url = new URL(imageurl);            connection = (HttpURLConnection) url.openConnection();            connection.setConnectTimeout(6000); //超时设置            connection.setDoInput(true);            connection.setUseCaches(false); //设置不使用缓存            InputStream inputStream = connection.getInputStream();            bitmap = BitmapFactory.decodeStream(inputStream);            inputStream.close();            Message message = handler.obtainMessage();            message.obj = index;            message.what = 1;            handler.sendMessage(message);        } catch (Exception e) {            e.printStackTrace();        }        return bitmap;    }    /**     * 获取网络图片     *     * @param imageurl 图片网络地址     * @return Bitmap 返回位图     */    public Bitmap GetImageInputStream(String imageurl) {        URL url;        HttpURLConnection connection = null;        bitmap = null;        try {            url = new URL(imageurl);            connection = (HttpURLConnection) url.openConnection();            connection.setConnectTimeout(6000); //超时设置            connection.setDoInput(true);            connection.setUseCaches(false); //设置不使用缓存            InputStream inputStream = connection.getInputStream();            bitmap = BitmapFactory.decodeStream(inputStream);            inputStream.close();            handler.sendEmptyMessage(1);        } catch (Exception e) {            e.printStackTrace();        }        return bitmap;    }}

0 0
原创粉丝点击