Androidstudio 创建子线程访问网络,获取到图片资源; 将获取到的图片显示在UI中。
时间: 2024-06-08 16:06:17 浏览: 176
可以按照以下步骤实现:
1. 在AndroidManifest.xml文件中添加网络权限:
```
<uses-permission android:name="android.permission.INTERNET" />
```
2. 在布局文件中添加一个ImageView用于显示图片:
```
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
3. 在Activity中创建一个子线程,访问网络获取图片资源,然后将其显示在UI中。
```
public class MainActivity extends AppCompatActivity {
private ImageView imageView;
private String imageUrl = "https://www.example.com/image.jpg";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = findViewById(R.id.imageView);
new Thread(new Runnable() {
@Override
public void run() {
try {
URL url = new URL(imageUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream inputStream = conn.getInputStream();
final Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
runOnUiThread(new Runnable() {
@Override
public void run() {
imageView.setImageBitmap(bitmap);
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
}
```
在子线程中,我们使用HttpURLConnection来访问网络,获取到输入流后,使用BitmapFactory.decodeStream()方法将输入流转换成Bitmap对象。最后在UI线程中更新ImageView的图片。注意,使用runOnUiThread()方法可以在子线程中更新UI。
阅读全文