2012-01-30 6 views
2

Мне нужно получить растровое изображение макета (скажем, второй экран) Перед тем, как (можно сказать без него), выведите его на экран переднего плана. Я передал сообщение this. Я делаю ошибку где-то в раздувании взгляда. Примечание:Создать растровое изображение макета, которое находится за пределами экрана

1. Must not show the inflated screen (second screen) 
2. Must not attach it to the parent view 

Мой фрагмент кода здесь:

private Bitmap renderNextScreen() { 

    // Getting width, height device 
    Display display = ((WindowManager)getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
    int width = display.getWidth(); 
    int height = display.getHeight(); 

    Log.i(TAG, "Width- " + width+" Height - "+height); 

    // Create a mutable bitmap 
    Bitmap secondScreen = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); 

    // Created a canvas using the bitmap 
    Canvas c = new Canvas(secondScreen); 

    // Inflated the second screen 
    LayoutInflater inflater = LayoutInflater.from(this); 
    View secondView = inflater.inflate(R.layout.secondscreen, null); 

    Log.i(TAG, "secondView.Height- "+secondView.getHeight()+" , secondView.Width " + secondView.getWidth()); 
    // Drawn the inflated view to canvas 
    secondView.draw(c); 

    preview.setImageBitmap(secondPage); // preview is the Imageview inside first screen 
    return secondScreen; 
} 

Мой журнал по высоте, ширина:

01-28 02:12:35.926: I/FirstActivity(21831): Width- 480 Height - 800 
01-28 02:30:08.287: I/FirstActivity(22207): secondView.Height- 0 , secondView.Width 0 

Мой предварительный просмотр всегда был пустым. Спасибо.

+0

Вы можете задать мне разъяснения :) Я думаю, что я ошибаюсь в раздувании зрения .... –

+0

Вы пробовали отлаживать ширину и высоту? Если я хорошо помню, эти две переменные равны 0, когда их извлекают таким образом ... – Sephy

+0

@ Сефир вы правы На самом деле я напечатал высоту и ширину растрового изображения. Высота и ширина secondView равно 0,0. Но если я упоминаю viewgroup в раздувании представления, он выйдет на экране ... Как я могу получить растровое изображение с моими требованиями ... –

ответ

2

Я думаю, что изменение:

View secondView = inflater.inflate(R.layout.secondscreen, null); 

к:

View secondView = inflater.inflate(R.layout.secondscreen, null, false); 

вам нужно будет объявить макет Params для надутого зрения, Somthing как:

secondView.setLayoutParams(new LayoutParams(displaymetrics.widthPixels, 
displaymetrics.heightPixels/3)); 

Displaymetrics был переменная, содержащая размер экрана телефона.

Затем вы должны иметь возможность превратить этот вид в BMP.

+1

http://stackoverflow.com/a/4348228/199364 и его комментарии также могут быть полезны , – ToolmakerSteve

Смежные вопросы