cuốn sách gpt4 ai đã làm

android - ảnh chụp màn hình

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 08:23:02 29 4
mua khóa gpt4 Nike

Tôi đang phát triển một ứng dụng chụp ảnh màn hình trên thiết bị. Trong ứng dụng này, chúng ta có thể vẽ bất cứ thứ gì trên màn hình. Để làm điều này, tôi sử dụng Canvas, Paint và Path để thực hiện việc này.

Tôi đang sử dụng mã này để chụp ảnh màn hình:

        công khai void saveScreenshot() 
{
nếu (đảm bảoSDCardAccess())
{
Bitmap bitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = Canvas mới (bitmap);
onDraw(canvas);
Tệp tệp = Tệp mới (mScreenshotPath + "/" + System.currentTimeMillis() + ".jpg");
FileOutputStream fos;
thử {
fos = FileOutputStream mới (tệp);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.close();
} bắt (FileNotFoundException e) {
Log.e("Bảng điều khiển", "FileNotFoundException", e);
} catch (IOException e) {
Log.e("Bảng điều khiển", "IOEception", e);
}
}
}

/**
* Phương thức trợ giúp để đảm bảo rằng đường dẫn đã cho tồn tại.
* TODO: kiểm tra trạng thái lưu trữ bên ngoài
*/
boolean riêng đảm bảoSDCardAccess() {
Tệp tệp = Tệp mới (mScreenshotPath);
if (file.exists()) {
trả về đúng sự thật;
} khác nếu (file.mkdirs()) {
trả về đúng sự thật;
}
trả về sai;
}

Tuy nhiên, khi chạy dòng sau:

Bitmap bitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);

Ứng dụng của tôi tắt với ngoại lệ sau:

28-11 15:05:46.291: E/AndroidRuntime(8209): java.lang.IllegalArgumentException: chiều rộng và chiều cao phải > 0

Nếu tôi thay đổi chiều cao và chiều rộng, ảnh chụp màn hình sẽ được chụp nhưng nó trống:

Trống

Tại sao điều này lại xảy ra? Tôi đã làm gì sai?

câu trả lời hay nhất

Bạn có thể làm điều này,

Sau khi cung cấp id cho bố cục chính của bạn và hiển thị nội dung trên màn hình, hãy viết đoạn mã sau vào một số trình nghe như nhấp vào nút hoặc mục menu hoặc bất kỳ trình nghe nào như vậy (đảm bảo gọi những dòng này sau khi bố cục được hiển thị nếu không nó sẽ hiển thị một màn hình trống).

        Xem nội dung = findViewById(R.id.myLayout);
content.setdrawCacheEnabled(true);
getScreen(nội dung);

Phương pháp lấy màn hình (nội dung)

riêng tư void getScreen(Xem nội dung)
{
Bitmap bitmap = content.getdrawCache();
Tệp tệp = Tệp mới ("/sdcard/test.png");
thử
{
file.createNewFile();
FileOutputStream ostream = new FileOutputStream(file);
bitmap.compress(CompressFormat.PNG, 100, ostream);
ostream.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}

Ngoài ra, không thêm quyền ghi tệp vào SDCard.



Về ảnh chụp màn hình android, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/8294110/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress