특정보기에서 비트 맵을 생성하는 데 문제가 있습니다. 제한 사항은보기 (그리기)로 렌더링 할 수 없다는 것입니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까?Android : 그림이없는보기의 비트 맵 생성
클래스 뷰 (http://developer.android.com/reference/android/view/View.html)의 문서에는 Android에서보기를 렌더링하는 데 사용되는 단계에 대한 설명이 있습니다. 이 경우 우리는 "레이아웃"단계에 있지만 "드로잉"에는 들어 가지 않습니다. 어떤 생각을 가진 사람이라면 모범을 보일 수 있습니까?
내 코드는 예외를 생성하는: 오류 -> 너비와 높이가 있어야합니다> 0
...
public static Bitmap loadBitmapFromView(View v) {
Bitmap b = null;
try {
b = Bitmap.createBitmap(
v.getWidth(),
v.getHeight(),
Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.measure(v.getWidth(), v.getHeight());
v.layout(0, 0, v.getWidth(), v.getHeight());
v.draw(c);
} catch (Exception e) {
Log.e(MainActivity.TAG, "error -> "+e.getMessage());
}
return b;
}
public void snap(View v) {
LayoutInflater inflate = (LayoutInflater) getBaseContext()
.getSystemService(LAYOUT_INFLATER_SERVICE);
View view = new View(getBaseContext());
view = inflate.inflate(R.layout.list_item, null);
Log.d(MainActivity.TAG, "getWidth -> "+view.getWidth());
Log.d(MainActivity.TAG, "getHeight -> "+view.getHeight());
Bitmap b = loadBitmapFromView(view);
if (b != null) {
LinearLayout mainLayout = (LinearLayout) findViewById(R.id.LinearLayout1);
ImageView image = new ImageView(this);
image.setImageBitmap(b);
mainLayout.addView(image);
}
}
난 정말 당신이 달성하고자하는 것을 이해하지 못했다 : –
비트 맵을 그리지 않고도 뷰에서 비트 맵을 생성 할 수 있습니까? 화면에 그려지지 않은 뷰에 이미지 (비트 맵)를 생성하고 싶습니다. 아이디어는 여러 비트 맵 이미지를 생성하고 필요한 경우에만 표시하는 것입니다. –