标签:没有 执行 exce return NPU hat rest androi 工作
public class MainActivity extends AppCompatActivity {
/**
* 这里的list如果不使用handler,由于是网络资源,加载需要时 间, 在当我们进行加载ui是
* 很可能list为空,或者没有全部加载完成
*/
private List<Bitmap> list2 = new ArrayList<>();
Handler handler;
@SuppressLint("HandlerLeak")
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ViewFlipper root = findViewById(R.id.test_view);
//在主线程里添加handler实例
handler = new Handler(){//匿名实现类
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 1) {//加载完成
//更新ui
for (Bitmap bitmap : list2) {
ImageView view = new ImageView(MainActivity.this);
view.setImageBitmap(bitmap);
root.addView(view, list2.indexOf(bitmap));
System.out.println(root.getChildCount());
}
}
}
};
//2.加载网络
new Thread(new Runnable() {
//子线程发送Message给UI线程表示自己任务已经执行完成,主线程可以做相应的操作了。
@Override
public void run() {
Bitmap bitmap1 = returnBitMap("http://129.211.190.120/restaurant/1.png");
Bitmap bitmap2 = returnBitMap("http://129.211.190.120/restaurant/2.png");
Bitmap bitmap3 = returnBitMap("http://129.211.190.120/restaurant/3.png");
Bitmap bitmap4 = returnBitMap("http://129.211.190.120/restaurant/4.png");
Bitmap bitmap5 = returnBitMap("http://129.211.190.120/restaurant/5.png");
Bitmap bitmap6 = returnBitMap("http://129.211.190.120/restaurant/6.png");
Bitmap bitmap7 = returnBitMap("http://129.211.190.120/restaurant/7.png");
list2.add(bitmap1);
list2.add(bitmap2);
list2.add(bitmap3);
list2.add(bitmap4);
list2.add(bitmap5);
list2.add(bitmap6);
list2.add(bitmap7);
//步骤3:创建所需的消息对象
Message msg = Message.obtain();
msg.what = 1; // 消息标识
// 步骤4:在工作线程中 通过Handler发送消息到消息队列中
//handler在发送消息时,message就持有了这个handler的引用
handler.sendMessage(msg);
}
}).start();
}
//请求网络图片
private Bitmap returnBitMap(String url) {
Bitmap bitmap = null;
try {
URL myFileUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ViewFlipper
android:layout_width="300dp"
android:layout_height="300dp"
android:inAnimation="@android:anim/slide_in_left"
android:outAnimation="@android:anim/slide_out_right"
android:flipInterval="2000"
android:autoStart="true"
android:layout_gravity="center"
android:id="@+id/test_view">
</ViewFlipper>
</LinearLayout>
标签:没有 执行 exce return NPU hat rest androi 工作
原文地址:https://www.cnblogs.com/sowhappy/p/14753800.html