在Android4.0之后谷歌强制要求连接网络不能在主线程进行访问,所以要开辟子线程来访问网络但是子线程中无法更新ui
所以使用Handler实现从子线程快速跳回主线程的操作。
1)Handler 和runOnUiThread()的使用
可以进行ui的更新
final Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
//runOnUiThread 不管在哪里调用 action 也就是Runnable()的run()方法中的语句都在运行在UI线程
runOnUiThread(new Runnable() {
@Override
public void run() {
iv.setImageBitmap(bitmap);
}
});
2)图片查看器案例 (如何使用图片缓存)
public class MainActivity extends AppCompatActivity {
private EditText et_path;
private ImageView iv;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
Bitmap bitmap = (Bitmap) msg.obj;
iv.setImageBitmap(bitmap);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
su