运行之后界面什么都没显示,我DeBug发现他方法里放回的bp值为空,写的时候发现不能直接返回bitmap,他会报错,说要加final,然后加了还是有错,波浪线。。然后想用全局变量来接受他来返回也不行。。package com.example.helloworld.AppTest;import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.ListView;import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;import com.example.helloworld.R;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class AppTest_Main extends AppCompatActivity {
private List<HashMap<String,Object>> list=new ArrayList<>();
private ListView lv;
private Bitmap bp; @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.apptest_main); lv=findViewById(R.id.lv); HashMap<String,Object> map=new HashMap<>();
Bitmap bitmap=loading("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1573652524957&di=bcc7c99a99cd075ed1846be02f3aa636&imgtype=0&src=http%3A%2F%2Fimage2.sina.com.cn%2Fent%2Fd%2F2005-06-21%2FU105P28T3D758541F326DT20050621155848.jpg");
map.put("head",bitmap);
list.add(map); AppTest_BaseAdapter adapter=new AppTest_BaseAdapter(this,list); lv.setAdapter(adapter); }
public Bitmap loading(String imageurl){
File externalFilesDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
final File saveFile = new File(externalFilesDir,System.currentTimeMillis()+".png");
new Thread(new Runnable() {
FileOutputStream fos = null;
InputStream is = null;
HttpURLConnection conn = null;
Bitmap bitmap;
@Override
public void run() {
try {
fos = new FileOutputStream(saveFile);
URL url = new URL("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1573652524957&di=bcc7c99a99cd075ed1846be02f3aa636&imgtype=0&src=http%3A%2F%2Fimage2.sina.com.cn%2Fent%2Fd%2F2005-06-21%2FU105P28T3D758541F326DT20050621155848.jpg");
conn = (HttpURLConnection) url.openConnection();
is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
bp=bitmap;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (fos!=null)
fos.close();
if (is!=null)
is.close();
conn.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}).start();
return bp;
}
}
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.ListView;import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;import com.example.helloworld.R;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class AppTest_Main extends AppCompatActivity {
private List<HashMap<String,Object>> list=new ArrayList<>();
private ListView lv;
private Bitmap bp; @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.apptest_main); lv=findViewById(R.id.lv); HashMap<String,Object> map=new HashMap<>();
Bitmap bitmap=loading("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1573652524957&di=bcc7c99a99cd075ed1846be02f3aa636&imgtype=0&src=http%3A%2F%2Fimage2.sina.com.cn%2Fent%2Fd%2F2005-06-21%2FU105P28T3D758541F326DT20050621155848.jpg");
map.put("head",bitmap);
list.add(map); AppTest_BaseAdapter adapter=new AppTest_BaseAdapter(this,list); lv.setAdapter(adapter); }
public Bitmap loading(String imageurl){
File externalFilesDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
final File saveFile = new File(externalFilesDir,System.currentTimeMillis()+".png");
new Thread(new Runnable() {
FileOutputStream fos = null;
InputStream is = null;
HttpURLConnection conn = null;
Bitmap bitmap;
@Override
public void run() {
try {
fos = new FileOutputStream(saveFile);
URL url = new URL("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1573652524957&di=bcc7c99a99cd075ed1846be02f3aa636&imgtype=0&src=http%3A%2F%2Fimage2.sina.com.cn%2Fent%2Fd%2F2005-06-21%2FU105P28T3D758541F326DT20050621155848.jpg");
conn = (HttpURLConnection) url.openConnection();
is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
bp=bitmap;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (fos!=null)
fos.close();
if (is!=null)
is.close();
conn.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}).start();
return bp;
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货