Dönüştürme bir görünüm Android görüntülemeden bit Eşlem?
Ne yapmam gerektiğini anlatmaya çalışacağım.
Ben 3 ayrı ekranlar ki A,B,C Var başka bir ekran denir ki Ekranı tüm 3 ekranlar bitmap olmalı görüntülenen Galeri görünümü ve kullanıcı-ebilmek seçmek hangi görünüm mı gitmek istiyor.
3 ekranlarından bit almak ve Galeride görüntü Ekranı aktivitede kodu girerek görünüm için tek mümkün olmuştur. Şimdi, bu kod çok karmaşık olan ve bunu kolaylaştırmak istiyorum.
, Ekrandan başka bir Aktivite arayıp ekran ve ekran bit Eşlem değil miyim yani. Örneğin, ben sadece Ana ekran ve arama Faaliyeti A,B,C ve Faaliyetlerin hiçbiri A,B,C görüntülenir çağırır söylüyorlar. Sadece getDrawingCache bu ekran bit Eşlem verir(). Ve sonra Ana Galeri görünümünde bu bitmap görüntüleme edebiliriz.
Çok açık bir şekilde sorunu açıkladım umarım.
Bana eğer bu gerçekten mümkün olup olmadığını bildirin lütfen.
CEVAP
bunu yapmak için bir yol var. bir bit Eşlem oluşturmak için Tuval ve çağrı bir görünümü var.draw(tuval);
işte kod:
public static Bitmap loadBitmapFromView(View v) {
Bitmap b = Bitmap.createBitmap( v.getLayoutParams().width, v.getLayoutParams().height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(v.getLeft(), v.getTop(), v.getRight(), v.getBottom());
v.draw(c);
return b;
}
eğer görünümü önce görüntülenen olmasaydı ama boyutu sıfır olacak. Olası böyle ölçmek için:
if (v.getMeasuredHeight() <= 0) {
v.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
Bitmap b = Bitmap.createBitmap(v.getMeasuredWidth(), v.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
v.draw(c);
return b;
}
EDİT: this post göremakeMeasureSpec()
değer WRAP_CONTENT
geçen hiçbir faydası yok(işe yarıyor bazı sınıfları görmek için olsa da), ve önerilen yöntemdir
// Either this
int specWidth = MeasureSpec.makeMeasureSpec(parentWidth, MeasureSpec.AT_MOST);
// Or this
int specWidth = MeasureSpec.makeMeasureSpec(0 /* any */, MeasureSpec.UNSPECIFIED);
view.measure(specWidth, specWidth);
int questionWidth = view.getMeasuredWidth();
Android "bu hiyerarşi görüşlerini...
Kolay bir şekilde Android bir Görünüm ...
Android 1.6: "android.görünüm.Pen...
Çok satırlı Android EditText görünüm s...
Android: Görünüm.KİMLİK çatışmaları ön...