Android自動化——截圖(一)
本方法為:
直接獲取到一個view,然後通過View的Cache來獲取一個bitmap物件,然後將bitmap物件寫到影象檔案。
主activity:
package com.zhf.ScreenshotDemo;
import Android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class ScreenshotDemoActivity extends Activity {
private Button shotButton;
private ImageView imageView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
shotButton=(Button)findViewById(R.id.shotButton);
imageView=(ImageView)findViewById(R.id.imageView);
shotButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//Bitmap-->Drawable
BitmapDrawable bd=new BitmapDrawable(shot());
imageView.setBackgroundDrawable(bd);
// imageView.setImageBitmap(shot());
}
});
}
/**
* 截圖方法
* @return
*/
private Bitmap shot() {
View view = getWindow().getDecorView();
Display display = this.getWindowManager().getDefaultDisplay();
view.layout(0, 0, display.getWidth(), display.getHeight());
view.setDrawingCacheEnabled(true);//允許當前視窗儲存快取資訊,這樣getDrawingCache()方法才會返回一個Bitmap
Bitmap bmp = Bitmap.createBitmap(view.getDrawingCache());
return bmp;
}
}
佈局:
<ImageView android:id="@+id/imageView"
android:layout_width="fill_parent"
android:layout_height="350dip"
/>
<Button android:id="@+id/shotButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="shot"/>