編輯:關於Android編程
步驟:
第一步:獲取保存屏幕圖像的Bitmap對象;
第二步 得到狀態欄的高度;
第三步 獲取屏幕圖像的高度;
第四步 創建新的Bitmap對象 並截取除了狀態欄的其他區域;
第五步 將屏幕圖像保存到sd卡的根目錄
代碼如下:
package com.example.activityproperty; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import android.annotation.SuppressLint; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Point; import android.graphics.Rect; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @SuppressLint("NewApi") public void onClick_CaptureScreen(View view) { // 使用延遲運行 ,防止單擊按鈕時還沒有抬起就截取屏幕圖像 new Handler().postDelayed(new Runnable() { @SuppressLint("NewApi") @Override public void run() { // 獲取窗口的頂層視圖對象 View v = getWindow().getDecorView(); v.setDrawingCacheEnabled(true); v.buildDrawingCache(); // 第一步:獲取保存屏幕圖像的Bitmap對象 Bitmap srcBitmap = v.getDrawingCache(); Rect frame = new Rect(); // decorView是window中的最頂層view,可以從window中獲取到decorView,然後decorView有個getWindowVisibleDisplayFrame方法可以獲取到程序顯示的區域,包括標題欄,但不包括狀態欄。 getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); // 第二步 得到狀態欄的高度 int statusHeight = frame.top; // 第三步 獲取屏幕圖像的高度 Point outSize = new Point(); getWindowManager().getDefaultDisplay().getSize(outSize); int width = outSize.x; int height = outSize.y; // 第四步 創建新的Bitmap對象 並截取除了狀態欄的其他區域 Bitmap bitmap = Bitmap.createBitmap(srcBitmap, 0, statusHeight, width, height - statusHeight); v.destroyDrawingCache(); FileOutputStream fos = null; try { File file = File.createTempFile("capture", ".jpg", new File("/sdcard")); fos = new FileOutputStream(file); if (null != fos) { // 第五步 :將屏幕圖像保存到sd卡的根目錄 bitmap.compress(Bitmap.CompressFormat.PNG, 90, fos); fos.flush(); Toast.makeText(MainActivity.this, "保存成功" + file.getName(), 0).show(); }else{ Toast.makeText(MainActivity.this,"失敗", 0).show(); } fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }, 2000); } }
1.onKeyDown 方法 onKeyDown 方法是KeyEvent.Callback 接口中的一個抽象方法,重寫onKeyDown 方法可以監聽到按鍵被按下的事件,
(一)前言今天我們一起來看一下工具欄控件ToolBarAndroid的介紹完全解析以及最佳實踐。剛創建的React Native技術交流群(282693535),歡迎各位
下面寫怎麼讓每個首字母相同的聯系人歸類展示: 在adapter implement SectionIndexer 這樣adapter裡必須實現以下3個接口: @Ove
本文實例講述了android實現listview分頁的方法。分享給大家供大家參考。具體分析如下:最近做了下listview的分頁,跟WEB上的分頁是一個意思,需要那幾個分