2013-08-19 139 views
1

我已經檢查了很多討論stackoverflow &關於以編程方式在Android像下面的一個程序截屏的截圖。Surfaceview截圖與線/橢圓繪製它

Taking screen shot of a SurfaceView in android

但是,我們來抓面臨一個獨特的問題,因爲它看起來。我們使用api canvas.drawline()在surfaceview的畫布上繪製一條線。但是,當我們使用衆多提供的示例代碼截取surfaceview的截圖時,屏幕截圖中缺少該行。在畫布上繪製的線是屏幕捕捉的一部分。

基本上,我們正在啓用緩存,建立緩存&獲取視圖的緩存,如下面的鏈接。

www.google.co.in/url?sa=t & RCT = j的& Q = & ESRC = S &源=幅& CD = 3 &粘彈性阻尼器= 0CD0QFjAC & URL = HTTP%3A%2F%2Fstackoverflow .COM%2Fquestions%2F12724237%2Ftaking-屏幕截圖對的一-surfaceview功能於機器人& EI = Xy0SUv3oOpDNrQfDmIHoAQ & USG = AFQjCNFNQA8PinYhqSA9z-Nt44kqzTtT-A & SIG2 = Kcvzw5j3wKXliC0EzzLd9Q & BVM = bv.50768961,d.bmk & CAD = rja

這是不正確的。任何人都可以提出建議嗎?提前致謝。

+0

請修正您的網址。 – 323go

回答

0

嘗試設置drawingCacheEnabled(假) - 這個方法對我的作品:

/** 
* returns the given view as a bitmap 
* @param view 
* @param viewWidth 
* @param viewHeight 
* @return 
*/ 
public static Bitmap getBitmapFromView(View view) { 
    Log.debug(LOG_SOURCE, "getBitmapFromView: "+view.getWidth()+" x "+view.getHeight()); 
    if (view.getWidth() == 0 || view.getHeight() == 0) 
     return null; 
    Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(bitmap); 
    view.setDrawingCacheEnabled(false); 
    view.measure(view.getWidth(), view.getHeight()); 
    view.layout(0, 0, view.getWidth(), view.getHeight()); 
    view.draw(canvas); 
    canvas = null; 
    return bitmap; 
}