android activity截图怎么样?
android activity screenshot how?
你好朋友我正在用 webview 制作一个应用
我想截取我的 activity
Currnetly 我正在使用此代码捕获图像
public Bitmap takeScreenshot() {
View rootView = findViewById(android.R.id.content).getRootView();
rootView.setDrawingCacheEnabled(true);
return rootView.getDrawingCache();
}
还有这个用于保存
public void saveBitmap(Bitmap bitmap) {
File imagePath = new File(Environment.getExternalStorageDirectory() + "/screenshot.png");
FileOutputStream fos;
try {
fos = new FileOutputStream(imagePath);
bitmap.compress(CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
Log.e("GREC", e.getMessage(), e);
} catch (IOException e) {
Log.e("GREC", e.getMessage(), e);
}
}
它有时有效,有时无效,我的意思是,有时我可以在图库屏幕截图中看到有时不能
我想是否有任何选项可以显示捕获的屏幕截图
就像我们按下 Vol+power 按钮时
主要问题是拍摄时如何显示图像
或者知道它是否被采取
提前致谢
其他人在尝试从视图的绘图缓存中获取位图时遇到了 运行 问题。
与其尝试使用绘图缓存,不如直接从视图中获取位图。 Google 的 DynamicListView 示例使用以下函数来执行此操作。
/** Returns a bitmap showing a screenshot of the view passed in. */
private Bitmap getBitmapFromView(View v) {
Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas (bitmap);
v.draw(canvas);
return bitmap;
}
这是一个示例方法:保存图像 -> 使用对话框显示结果。并使其在 Android 图库中可用,还应更改文件路径:
public void saveBitmap(Bitmap bitmap) {
File path = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES);
File imagePath = new File(path, "screenshot.png");//now gallery can see it
FileOutputStream fos;
try {
fos = new FileOutputStream(imagePath);
bitmap.compress(CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
displayResult(imagePath.getAbsolutePath())// here you display your result after saving
} catch (FileNotFoundException e) {
Log.e("GREC", e.getMessage(), e);
} catch (IOException e) {
Log.e("GREC", e.getMessage(), e);
}
}
创建另一个方法调用 displayResult
以查看结果:
public void displayResult(String imagePath){
//LinearLayOut Setup
LinearLayout linearLayout= new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.VERTICAL);
linearLayout.setLayoutParams(new LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
//ImageView Setup
ImageView imageView = new ImageView(this);//you need control the context of Imageview
//Diaglog setup
final Dialog dialog = new Dialog(this);//you need control the context of this dialog
dialog.setContentView(imageView);
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
//Display result
imageView.setImageBitmap(BitmapFactory.decodeFile(imagePath));
dialog.show();
}
你好朋友我正在用 webview 制作一个应用 我想截取我的 activity Currnetly 我正在使用此代码捕获图像
public Bitmap takeScreenshot() {
View rootView = findViewById(android.R.id.content).getRootView();
rootView.setDrawingCacheEnabled(true);
return rootView.getDrawingCache();
}
还有这个用于保存
public void saveBitmap(Bitmap bitmap) {
File imagePath = new File(Environment.getExternalStorageDirectory() + "/screenshot.png");
FileOutputStream fos;
try {
fos = new FileOutputStream(imagePath);
bitmap.compress(CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
Log.e("GREC", e.getMessage(), e);
} catch (IOException e) {
Log.e("GREC", e.getMessage(), e);
}
}
它有时有效,有时无效,我的意思是,有时我可以在图库屏幕截图中看到有时不能 我想是否有任何选项可以显示捕获的屏幕截图 就像我们按下 Vol+power 按钮时
主要问题是拍摄时如何显示图像 或者知道它是否被采取 提前致谢
其他人在尝试从视图的绘图缓存中获取位图时遇到了 运行 问题。
与其尝试使用绘图缓存,不如直接从视图中获取位图。 Google 的 DynamicListView 示例使用以下函数来执行此操作。
/** Returns a bitmap showing a screenshot of the view passed in. */
private Bitmap getBitmapFromView(View v) {
Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas (bitmap);
v.draw(canvas);
return bitmap;
}
这是一个示例方法:保存图像 -> 使用对话框显示结果。并使其在 Android 图库中可用,还应更改文件路径:
public void saveBitmap(Bitmap bitmap) {
File path = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES);
File imagePath = new File(path, "screenshot.png");//now gallery can see it
FileOutputStream fos;
try {
fos = new FileOutputStream(imagePath);
bitmap.compress(CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
displayResult(imagePath.getAbsolutePath())// here you display your result after saving
} catch (FileNotFoundException e) {
Log.e("GREC", e.getMessage(), e);
} catch (IOException e) {
Log.e("GREC", e.getMessage(), e);
}
}
创建另一个方法调用 displayResult
以查看结果:
public void displayResult(String imagePath){
//LinearLayOut Setup
LinearLayout linearLayout= new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.VERTICAL);
linearLayout.setLayoutParams(new LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
//ImageView Setup
ImageView imageView = new ImageView(this);//you need control the context of Imageview
//Diaglog setup
final Dialog dialog = new Dialog(this);//you need control the context of this dialog
dialog.setContentView(imageView);
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
//Display result
imageView.setImageBitmap(BitmapFactory.decodeFile(imagePath));
dialog.show();
}