Android 从布局创建可绘制的
有没有从布局生成可绘制对象的方法 事实上,我需要初始布局的裁剪部分,我的想法是将布局转换为可绘制对象,然后裁剪为可绘制对象。简单版本:Android 从布局创建可绘制的,android,Android,有没有从布局生成可绘制对象的方法 事实上,我需要初始布局的裁剪部分,我的想法是将布局转换为可绘制对象,然后裁剪为可绘制对象。简单版本: Bitmap snapshot = null; Drawable drawable = null; yourView.setDrawingCacheEnabled(true); yourView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_LOW); //Quality of the
Bitmap snapshot = null;
Drawable drawable = null;
yourView.setDrawingCacheEnabled(true);
yourView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_LOW); //Quality of the snpashot
try {
snapshot = Bitmap.createBitmap(yourView.getDrawingCache(), sizes and stuff); // You can tell how to crop the snapshot and whatever in this method
drawable = new BitmapDrawable(snapshot)
} finally {
yourView.setDrawingCacheEnabled(false);
}
好的,但那个可拉丝的控制行为会是什么呢?即使那是纯文本,我担心它看起来会很难看。依我看,如果你想重新使用这个布局,最好是为应该消失的元素设置可见性(View.go)。如果可以的话,只需在手前截图就可以了。这就是iPhone应用程序“加载”如此之快的原因。有关完整的答案,请参阅,下面的答案中有一个对我不起作用的替代答案。感谢您的回答,但yourView.getDrawingCache()返回空值。请确保您在查看后获得此位图。setDrawingCacheEnabled(true);如果你得到的位图就这么简单(没有复制它和其他东西),然后设置你的view.setDrawingCacheEnabled(false);由于缓存被禁用,它将变为null。我正使用上面的代码,为新的drawable.Strange使用一些维度值。这对我来说很好。你把这个代码放在哪里了?请注意,它必须在视图呈现后调用,因此onCreate()不是正确的选项。您还应该尝试调试,或者在不使用任何大小参数的情况下调用createBitmap,并检查它是否工作。