我的代码是从第一个活动中捕获屏幕截图。在我点击按钮的第一个活动中,它将捕获屏幕并将其保存到手机中,并在第二个活动的图像视图或图库中显示所有图像。
第一项活动:
Button btn;
ImageView img;
Bitmap bitmap;
int j = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screen__main);
//final BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap);
imgv_capturedImage = (ImageView) findViewById(R.id.imageView1);
img = (ImageView) findViewById(R.id.imageView1);
btn = (Button) findViewById(R.id.btn_screenshoot);
btn .setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
captureScreen(v);
saveImage(bitmap);
Log.d("SCREEN", "ONCLICK");
Intent i = new Intent(getApplicationContext(),B.class);
i.putExtra("image",bitmap);
startActivity(i);
}
});
}
public void captureScreen(View v1){
Log.d("SCREEN", "CAPTURE");
View rootview = v1.getRootView();
rootview.setDrawingCacheEnabled(true);
bitmap = rootview.getDrawingCache();
}
public void saveImage(Bitmap b){
Log.d("SCREEN", "SAVE");
if (Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState())) {
File sdCard = Environment.getExternalStorageDirectory();
File directory = new File(sdCard.getAbsolutePath()
+ "/ScreenShots");
directory.mkdirs();
String filename = "screenshot" + j + ".jpg";
File yourFile = new File(directory, filename);
while (yourFile.exists()) {
j++;
filename = "screenshot" + j + ".jpg";
yourFile = new File(directory, filename);
}
if (!yourFile.exists()) {
if (directory.canWrite()) {
try {
FileOutputStream out = new FileOutputStream(
yourFile, true);
bitmap.compress(Bitmap.CompressFormat.PNG, 80,
out);
out.flush();
out.close();
Toast.makeText(Screen_MainActivity.this,"File exported to /sdcard/ScreenShots/screenshot"+ j + ".jpg",
Toast.LENGTH_SHORT).show();
j++;
} catch (IOException e) {
e.printStackTrace();
}
}
}
} else {
Toast.makeText(Screen_MainActivity.this,
"Sorry SD Card not available in your Device!",
Toast.LENGTH_SHORT).show();
}
}
}
第二项活动:
Screen_MainActivity sc;
ImageView imgView;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d("SCREEN", "B");
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.b);
Intent i = new Intent();
Bitmap bitmap = (Bitmap)i.getParcelableExtra("image");
imgView = (ImageView) findViewById(R.id.imageView1);
imgView.setImageBitmap(bitmap);
}
}
答案 0 :(得分:3)
将文件的路径发送到第二个活动,而不是发送整个位图。并在第二次活动中检索它。