Giới thiệu
Hướng dẫn này trình bày cách chụp ảnh màn hình (screenshot) của View hoặc toàn bộ màn hình theo chương trình trong Android, sau đó hiển thị ảnh vừa chụp.
Các bước thực hiện
Bước 1: Tạo dự án mới
Mở Android Studio, chọn File → New Project và điền thông tin cần thiết.
Bước 2: Thiết kế giao diện (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
style="?attr/actionButtonStyle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/main">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:text="Chụp màn hình"/>
<ImageView
android:id="@+id/imageView"
android:layout_below="@id/button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:scaleType="fitCenter"/>
</RelativeLayout>
Bước 3: Lớp hỗ trợ chụp màn hình (Screenshot.java)
import android.graphics.Bitmap;
import android.view.View;
public class Screenshot {
public static Bitmap takescreenshot(View v) {
v.setDrawingCacheEnabled(true);
v.buildDrawingCache(true);
Bitmap b = Bitmap.createBitmap(v.getDrawingCache());
v.setDrawingCacheEnabled(false);
return b;
}
public static Bitmap takescreenshotOfRootView(View v) {
return takescreenshot(v.getRootView());
}
}
Bước 4: Logic chính (src/MainActivity.java)
import android.graphics.Bitmap;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
private View main;
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
main = findViewById(R.id.main);
imageView = findViewById(R.id.imageView);
Button btn = findViewById(R.id.button);
btn.setOnClickListener(v -> {
// Chụp màn hình toàn bộ (root view)
Bitmap bitmap = Screenshot.takescreenshotOfRootView(imageView);
// Hiển thị ảnh vừa chụp
imageView.setImageBitmap(bitmap);
// Đổi màu nền để phân biệt
main.setBackgroundColor(Color.parseColor("#999999"));
});
}
}
Bước 5: Cấu hình Manifest (androidManifest.xml)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Lưu ý quan trọng
- Phương pháp
setDrawingCacheEnabled()vàbuildDrawingCache()đã deprecated từ API 28 - Cách hiện đại hơn: sử dụng
PixelCopyAPI (API 24+) hoặcView.draw(Canvas)với Bitmap - Cách này chỉ chụp được View của ứng dụng, không chụp được màn hình home hoặc app khác
Chạy ứng dụng
Kết nối thiết bị Android, nhấn Run trong Android Studio. Nhấn nút "Chụp màn hình" để chụp và hiển thị ảnh trong ImageView.

