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;
}
}
temp
最新推荐文章于 2022-08-21 23:53:19 发布