各位Android安卓開發者大家好!^^
接下來,擷取全螢幕畫面的功能只要在Activity(.java)上做編輯控制即可,所以在Layout(.xml)與AndroidManifest.xml都不用特別針對截圖功能做設定。
Activity完整程式碼如下 :
public class MainActivity extends Activity 
{
        //擷取畫面按鈕
        private
Button mBtn;
        //截圖的畫面
        private
ImageView mImg;
        @Override
        protected
void onCreate(Bundle savedInstanceState) 
        {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                //取得Button與ImageView元件
                mBtn
= (Button) findViewById(R.id.btn);
                mImg
= (ImageView) findViewById(R.id.img);
                //點擊按鈕觸發
                mBtn.setOnClickListener(new
OnClickListener()
                {
                        @Override
                        public
void onClick(View v) 
                        {
                                //將截圖Bitmap放入ImageView
                                mImg.setImageBitmap(getScreenShot());
                        }
                });
        }
        //將全螢幕畫面轉換成Bitmap
        private Bitmap getScreenShot()
        {    
                //藉由View來Cache全螢幕畫面後放入Bitmap
                View mView = getWindow().getDecorView();   
                mView.setDrawingCacheEnabled(true);  
                mView.buildDrawingCache();   
                Bitmap mFullBitmap = mView.getDrawingCache();   
                //取得系統狀態列高度
                Rect mRect = new Rect();     
                getWindow().getDecorView().getWindowVisibleDisplayFrame(mRect);     
                int mStatusBarHeight = mRect.top;       
                //取得手機螢幕長寬尺寸
                int mPhoneWidth = getWindowManager().getDefaultDisplay().getWidth();     
                int mPhoneHeight =
getWindowManager().getDefaultDisplay().getHeight();  
                //將狀態列的部分移除並建立新的Bitmap
                Bitmap mBitmap = Bitmap.createBitmap(mFullBitmap, 0, mStatusBarHeight,
mPhoneWidth, mPhoneHeight - mStatusBarHeight);  
                //將Cache的畫面清除
                mView.destroyDrawingCache();  
                return mBitmap;   
        }   
}
以上的程式碼帶入後就可以即時擷取螢幕畫面,至於擷取完的畫面Bitmap要怎麼運用就看開發需求而定,例如要儲存、顯示、回傳等各運用方法,大家可以試試看這個截圖機制。
謝謝大家,如有任何問題都可以和小黑人一起交流討論!
☆小黑人☆
 

 
請問可以連同狀態列一起截進去嗎0.0
回覆刪除