我們遇到了從特定視圖生成位圖的問題。限制是它不能渲染視圖(繪圖)。有沒有人有任何提示如何解決這個問題?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);
}
}
我真的不明白你想要達到的目標。但在'onMeasure'步驟之前,視圖不會有大小。所以,只是膨脹視圖不會伎倆。 –
您可以從視圖中生成位圖而不繪製它?我想生成一個圖像(位圖)到一個未在屏幕上繪製的視圖。這個想法是生成多個位圖圖像並僅在需要時顯示。 –