Sử dụng Trình chọn ảnh trong Android Studio – Lập trình ứng dụng Android

Trình chọn ảnh cung cấp giao diện giúp người dùng ứng dụng sử dụng thư viện ảnh của họ, được sắp xếp theo ngày từ mới nhất đến cũ nhất. Ngoài ra, người dùng ứng dụng có thể chọn video và ảnh tùy theo cài đặt.

Để xây dựng nên ứng dụng “Trình chọn ảnh” sẽ gồm ba bước:

Bước 1: Trình chọn ảnh có sẵn trên các thiết bị chạy Android 11 (API cấp 30) trở lên các bạn bỏ qua bước này.

Đối với các thiết bị cũ hơn chạy Android 4.4 (API cấp 19) đến Android 10 (API cấp 29) và các thiết bị Android Go chạy Android 11 hoặc 12 hỗ trợ dịch vụ Google Play, các bạn hãy thêm mục sau vào thẻ <application> trong tệp Manifest của ứng dụng:

<!-- Trigger Google Play services to install the backported photo picker module. -->
<service android:name="com.google.android.gms.metadata.ModuleDependencies"
android:enabled="false"
android:exported="false"
tools:ignore="MissingClass">
<intent-filter>
<action android:name="com.google.android.gms.metadata.MODULE_DEPENDENCIES" />
</intent-filter>
<meta-data android:name="photopicker_activity:0:required" android:value="" />
</service>

Bước 2: Xây dựng giao diện trong tệp “activity_main.xml”:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/img_anhdachon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Chọn ảnh"
app:layout_constraintBottom_toBottomOf="parent"
android:id="@+id/btn_chonanh"
android:layout_margin="5dp"
/>

</androidx.constraintlayout.widget.ConstraintLayout>

Bước 3: Viết chương trình điều khiển trong tệp “MainActivity.java“:

import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.PickVisualMediaRequest;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;

import java.io.IOException;

public class MainActivity extends AppCompatActivity {
private ImageView imageView;
private Button btn_chonanh;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = findViewById(R.id.img_anhdachon);
btn_chonanh = findViewById(R.id.btn_chonanh);
ActivityResultLauncher<PickVisualMediaRequest> pickMedia =
registerForActivityResult(new ActivityResultContracts.PickVisualMedia(), uri -> {
// Lệnh được gọi sau khi người dùng chọn một ảnh hoặc đóng trình chọn ảnh.
if (uri != null) {
try {
Bitmap bitmap= MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
imageView.setImageBitmap(bitmap);

} catch (IOException e) {
throw new RuntimeException(e);
}
Log.d("PhotoPicker", "Selected URI: " + uri);
} else {
Log.d("PhotoPicker", "No media selected");
}
});

btn_chonanh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Khởi chạy trình chọn ảnh và cho phép người dùng chỉ chọn hình ảnh.
pickMedia.launch(new PickVisualMediaRequest.Builder()
.setMediaType(ActivityResultContracts.PickVisualMedia.ImageOnly.INSTANCE)
.build());
}
});
}
}

Bạn chạy ứng dụng trình chọn ảnh đã xây dựng có giao diện như sau:


Kết quả ảnh đã chọn:



Như vậy, bạn đã có thể sử dụng Trình chọn ảnh trong ứng dụng. Chúc các bạn thực hiện thành công!

Link tham khảo: https://developer.android.com/training/data-storage/shared/photopicker

Comments