Я пытаюсь создать растровое изображение из относительного макета, который я создал программно. Realtivelayout показывает, как ожидается, но когда я пытаюсь создать растровое изображение, оно возвращает незаконное исключение аргумента, что высота и ширина должна быть> 0 это то, как я делаю этоРисование растрового изображения с относительным макетом возвращает unsargargumentexception
Bitmap.createBitmap(saveLayout.getWidth(),
saveLayout.getHeight(), Bitmap.Config.ARGB_8888);
Есть указатели?
Edit: добавил этот код, тоже:
ViewTreeObserver viewTreeObserver = saveLayout.getViewTreeObserver();
if (viewTreeObserver.isAlive()) {
viewTreeObserver
.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
saveLayout.getViewTreeObserver()
.removeGlobalOnLayoutListener(this);
viewWidth = saveLayout.getWidth();
viewHeight = saveLayout.getHeight();
}
});
}
В выше данного кода onGlobalLayout()
также никогда не казалось, что называется.
Эй, спасибо за помощь Теперь я пытаюсь использовать этот код, чтобы получить ширину и высоту ViewTreeObserver viewTreeObserver = saveLayout.getViewTreeObserver(); \t \t если (viewTreeObserver.isAlive()) { \t \t \t viewTreeObserver \t \t \t \t \t .addOnGlobalLayoutListener (новый OnGlobalLayoutListener() { \t \t \t \t \t \t @Override \t \t \t \t \t \t общественного недействительными onGlobalLayout() { \t \t \t \t \t \t \t saveLayout.getViewTreeObserver() \t \t \t \t \t \t \t \t \t .removeGlobalOnLayoutListener (это); \t \t \t \t \t \t \t viewWidth = saveLayout.getWidth(); \t \t \t \t \t \t \t viewHeight = saveLayout.GetHeight(); \t \t \t \t \t \t} \t \t \t \t \t}); , но на глобальном макете, похоже, не вызывали, можете ли вы объяснить почему? –
Пожалуйста, добавьте дополнительный код в свой ** вопрос ** выше (используя ссылку ** edit ** ниже) и отформатируйте его как код. Трудно прочитать, что вы только что отправили сюда. Благодарю. – Nate
вопрос отредактирован :) –