2017-02-13 20 views
0

影(仰角)を持つCardViewのスクリーンショットを撮ろうとしています。しかし、スクリーンショットは影なしに出てきます。
アイデア影付きのビューのAndroidスクリーンショット

これは私のコードである:(API25 +でElevation

View v = mView.RootView; 
v.DrawingCacheEnabled = true; 
Bitmap b = v.DrawingCache; 

答えて

2

影ハードウェアが加速され、ビューレベルでのキャッシングに使用できません。また

あなたも...キャッシュのため利用できません無効にされた標高効果よりもView(実際にはその親)のためのハードウェアアクセラレーションをオフにした場合

(aView.Parent as View).SetLayerType(LayerType.Software, null); 

Aビューキャッシュの例をキャプチャ:

Bitmap CaptureView(View view) 
{ 
    if (view.IsHardwareAccelerated) 
     Toast.MakeText(ApplicationContext, "View Is Hardware Accelerated, Effects will not be captured", ToastLength.Long).Show(); 
    view.BuildDrawingCache(); 
    Bitmap bitmap = view.GetDrawingCache(false); 
    Bitmap bitmapCopy = bitmap.Copy(Bitmap.Config.Argb8888, false); 
    view.DestroyDrawingCache(); 
    return bitmapCopy; 
} 
+0

これは、私は影を捉えることができないということですか?回避策はありますか? – amitairos

+0

@amitairos 5.0+でProjection APIを使用し、メイン画面/デフォルト表示の 'Surface'を取得し、そのSurfaceをキャプチャしたいViewの親座標にクリップすることができます(" shadow "はそれを定義するビュー、そのビューの親にあります....)。それは実際にあなたのユースケースに依存します... – SushiHangover

+0

メイン画面のサーフェスを取得する方法を説明できますか?私はこれに慣れていない。 – amitairos

関連する問題