2011-06-13 26 views
6

Res/drawable klasörüne kaydedilmiş bir resmi gösteremiyorum. Bunu yapmak için ImageGetter kullanıyorum. kod aşağıda:Android - Kaynaklardan görüntüler nasıl çizilebilir?

ImageGetter imageGetter3 = new ImageGetter() {     
    public Drawable getDrawable(String source) { 
     int id=0; 
     if (source.equals("smiley")) { 
      id = R.drawable.smiley; 
     } 
     Drawable d = getResources().getDrawable(id); 
     d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); 
     return d; 
    } 
}; 

directions += "Je bent bij lokaal " + vertrek.getNaam() + "\n" 
      + "Sta met je rug voor de deur\n" 
      + Html.fromHtml("<img src=\"smiley\">", imageGetter3, null) + " Draai naar links\n"; 

Ne çalıştıran ekranda gördüğünüz üzerinde "obj" metin ile biraz kare. Peki, sorun nedir? Görüntü okunamıyor veya başka bir şey değil mi? Resimler nasıl gösterilsin? =====

ImageGetter imageGetter2 = new ImageGetter() { 
public Drawable getDrawable(String source) { 
     Drawable d = null; 
     d = Drawable.createFromPath(source); 
     d.setBounds(0,0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); 
     return d; 
} 
}; 

ImageGetter imageGetter = new ImageGetter() {     
public Drawable getDrawable(String source) { 
    Drawable drawFromPath; 
    int path = Route.this.getResources().getIdentifier(source, "drawable","com.prj56.tracingapp"); 
    drawFromPath = (Drawable) Route.this.getResources().getDrawable(path); 
    drawFromPath.setBounds(0, 0, drawFromPath.getIntrinsicWidth(), drawFromPath.getIntrinsicHeight()); 
    return drawFromPath; 
} 
}; 

:

işe yaramazlar, ben de bu çalıştı Dürüst ben çok google'dan ve yanı ImageGetter diğer yöntemler denedi, ancak bunların hiçbiri işe görünüyor ================================================== == if (....) { ImageView iv1 = yeni ImageView (bu); iv1.setImageResource (R.drawable.smiley);

directions += "Je bent bij lokaal " + vertrek.getNaam() + "\n" 
     + "Sta met je rug voor de deur\n"; 
     HERE COMES THE IMAGE! BUT HOW TO DO THIS? It's within directions textview... 
    directions += " Draai naar links\n"; 

} 
+0

"Resim göster" ne anlama geliyor? Nerede göstermek istersin? – Egor

cevap

28

Güncelleme 12 Aralık 2016.

GetResources() getDrawable() böylece artık ContextCompat.getDrawable örneğin kullanarak olmalıdır API 22 kullanımdan kaldırıldı etkinlik olarak

Drawable d = ContextCompat.getDrawable(context, R.drawable.smiley); 

bir Drawable nesne

Drawable d = getResources().getDrawable(R.drawable.smiley); 

Bunu yapabileceğiniz bir ImageView da çekilebilir göstermek istiyorsanız olarak Drawable kaynak almak için arayabilirsiniz:

ImageView i = new ImageView(this); 
i.setImageResource(R.drawable.smiley); 

veya xml dosyasında

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/smiley"/> 
+0

Sorun ImageView bildirmek için varsayılan bir yere sahip değilsiniz, çünkü ImageView kodunda dinamik olarak oluşturulması gerekiyor. Kararların alınmasına bağlı olarak, görüntülenecek görüntüler dahil olmak üzere farklı yönler olacaktır. – Yanny

+0

Buna baktınız mı? http://stackoverflow.com/questions/2865452/is-it-possible-to-display-inline-images-from-html-in-an-android-textview – Damian

+0

Evet, ama yine de çalışmıyor. Yine de bir çözüm buldum, bu sadece SpannableStringBuilder kullanarak. Bu görüntüleri eklemek ve bir metin görünümünde kullanmak için çok basit bir çözüm! – Yanny

6

Görüntüyü bağdaştırıcı konumunda pImg.Based yardımıyla görüntü adı olan dizeyi alabilirsiniz. Görüntü, çekilebilir klasörde bulunmalıdır.

android:background="@drawable/your_file_name"

... ve png olmadığını (yani resim dosyası koymak emin olun:

ImageView prodImg=(ImageView)view.findViewById(R.id.img_proj_name); 
    String pImg=prod.get(position); 
    int resID = view.getResources().getIdentifier("@drawable/"+pImg , "drawable", parentView.getContext().getPackageName()); 
    prodImg.setImageResource(resID); 
+0

Fikir için teşekkürler, çok yardımsever. –

1

A göstermek derece kolay bir yöntem xml içinde ImageView widget'ında bu yazmaktır veya jpg, vb. çekilebilir klasörünüze. your_file_name yazdığınızda, sadece dosya uzantısına değil, başlığa ihtiyacınız var.

Bu yolla .java dosyanıza program aracılığıyla yazmayı tercih ederim (yukarıdaki diğer yanıtlarda gösterildiği gibi), çünkü xml önizlemede görüntüyü size gösterecektir, programlı olarak değil, sadece ImageView yer tutucusunu gösterecektir.

0

kolay yolu - Biz imageview setImageResource yararlanmak için aynı kodu altında başvurabilirsiniz aşağıdaki kodu

dikkate alınabilir. görüntüyü aşağıdaki gibi çizilebilir şekilde yerleştirin:

image_1.png, image_2.png, vb.

int resId = getResources().getIdentifier("image_" + imagePosition, "drawable", getPackageName()); 
      imageview.setImageResource(resId);