2
アンドロイドのレイアウトの正しい「ScreenShot」を取得する際に問題があります。レイアウトには、EditTextsとTextViewsが含まれています。Androidの特定のレイアウトのDrawingCacheを更新します。
次のコードではレイアウトの「ScreenShot」しか表示されませんが、EditTextまたはTextViewで文字列を変更した場合、「ScreenShot」は更新されません。
「スクリーンショット」を画面に表示されるように更新することができますか?ここで
private Bitmap getBitmap() {
Bitmap bitmap = null;
LayoutInflater factorys = LayoutInflater.from(this);
final View textEntryView = factorys.inflate(R.layout.activity_main, null);
View ll = textEntryView.findViewById(R.id.ll_layout);
ll.setDrawingCacheEnabled(true);
ll.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
ll.layout(0, 0, ll.getMeasuredWidth(), ll.getMeasuredHeight());
ll.buildDrawingCache();
bitmap = Bitmap.createBitmap(ll.getDrawingCache());
//bitmap=getCacheBitmapFromView(ll);
ll.setDrawingCacheEnabled(false);
return bitmap;
}
は、全体のコード解決
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(mycl);
}
OnClickListener mycl = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Bitmap mybpic = null;
mybpic = getBitmap();
ImageView imageView = (ImageView) findViewById(R.id.imageView1);
imageView.setImageBitmap(mybpic);
}
};
private Bitmap getBitmap() {
Bitmap bitmap = null;
LayoutInflater factorys = LayoutInflater.from(this);
final View textEntryView = factorys.inflate(R.layout.activity_main,
null);
View ll = textEntryView.findViewById(R.id.ll_layout);
ll.destroyDrawingCache();
ll.invalidate();
ll.setDrawingCacheEnabled(true);
ll.measure(View.MeasureSpec.makeMeasureSpec(0,
View.MeasureSpec.UNSPECIFIED), View.MeasureSpec
.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
ll.layout(0, 0, ll.getMeasuredWidth(), ll.getMeasuredHeight());
ll.buildDrawingCache();
bitmap = Bitmap.createBitmap(ll.getDrawingCache());
// bitmap=getCacheBitmapFromView(ll);
ll.setDrawingCacheEnabled(false);
return bitmap;
}
}
ll.destroyDrawingCache();を追加してください。前にll.setDrawingCacheEnabled(true); –
私は両方を試しました ll.destroyDrawingCache();ll.invalidate(); それは私のため @DivyeshPatel – Lee
を解決のEditTextとTextViewの –