Android實現截圖功能
該方法主要利用SDK提供的view.getDrawingCache()方法,主要步驟如下:
- 設定view.setDrawingCacheEnabled(true)
- 呼叫view.buildDrawingCache(true)
- 生產bitmap:Bitmap b = Bitmap.createBitmap(v.getDrawingCache())
- 最後再設定回去v.setDrawingCacheEnabled(false)
##如圖:
頁面主要由3部分構成:
1.textView,顯示hello world
2.button,點選截圖
1.imageView,用來顯示截下的圖片
上程式碼:
<code> @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); //activityMain是佈局檔案根LinearLayout,將其傳入截圖方法中,將擷取整個頁面 activityMain =(LinearLayout)findViewById(R.id.activity_main); imageView = (ImageView) findViewById(R.id.image_view); } //button按鍵處理,按下執行截圖操作,並將截圖顯示在imageView中 public void onClick(View view){ bitmap_view = takeScreenShotOfView(view); imageView.setImageBitmap(bitmap_view); } public Bitmap takeScreenShotOfView(View v) { v.setDrawingCacheEnabled(true); v.buildDrawingCache(true); Bitmap b = Bitmap.createBitmap(v.getDrawingCache()); v.setDrawingCacheEnabled(false); // clear drawing cache return b; } </code>
佈局檔案比較簡單,這裡就不貼布局檔案的程式碼了,小小demo,沒有太注重程式碼邏輯,如有問題,歡迎指正,謝謝!