Я работаю с Android 2.1 и имею следующую проблему: Используя метод View.getDrawingCache () всегда возвращает пустой указатель. getDrawingCache () должен возвратить Битовый массив, который является презентацией контента Представления.
Пример кода:
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final View view = findViewById(R.id.ImageView01);
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
final Bitmap bmp = view.getDrawingCache();
System.out.println(bmp);
}
Я уже попробовал различные способы настроить объект Представления для генерации кэша рисунка (например. View.setWillNotDraw(boolean)
и View.setWillNotCacheDrawing(boolean)
), но ничто не работает.
Каков правильный путь, или что я делаю неправильно?
PS: В реальном коде я хочу применить getDrawingCache () на ViewGroup как RelativeLayout. Действительно ли поведение является тем же при использовании ViewGroup?
Насколько я читал последние дни в документации, вы должны вызывать только setDrawingCacheEnabled или buildDrawingChache(), но не оба.
используйте
onLayout(x, y, width, height);
для ex:
onLayout(0, 0, 100, 100);
перед вызовом getDrawingCache