#android #xml #image #layout #bitmap
#Android #xml #изображение #макет #растровое изображение
Вопрос:
Я пытаюсь добавить небольшое изображение в строку моего расширяемого списка. Ниже вы можете увидеть код метода getchildview моего пользовательского адаптера. Он отлично работает для настройки динамического текста, но терпит неудачу, когда я хочу добавить изображение.
Я не понимаю, почему команды для добавления изображения полностью игнорируются приложением. Я попробовал 2 версии, просто чтобы увидеть, что обе терпят неудачу.
Я не получаю никаких ошибок во время выполнения, просто изображения не загружены. Более того, я знаю, что, по крайней мере, «setImageBitmap» работает, потому что я успешно использую его в других местах.
Изображения, на которые ссылаются, представляют собой файлы png размером 9×10.
Пожалуйста, помогите мне, потому что я не думаю, что мне чего-то не хватает, но изображения вообще не отображаются.
Я попытался установить цвет фона (setBackgroundColor) в relativelayout l, но это тоже не возымело эффекта. Поэтому я думаю, что это что-то графическое, но я не могу найти никакой ошибки в моем подходе.
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
RelativeLayout l = (RelativeLayout) getLayoutInflater().inflate(R.layout.titoli2_gruppo_riga, null)
String s;
s=prodotti.get(groupPosition).get(childPosition)[DSP];
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.disponibile);
if(s.equals("true"))
((ImageView) l.findViewById(R.id.tgr_dispon)).setImageBitmap(bm);
else
((ImageView) l.findViewById(R.id.tgr_dispon)).setImageResource(R.drawable.nondispon);
((TextView) l.findViewById(R.id.tgr_descr)).setText(prodotti.get(groupPosition).get(childPosition)[DES]);
((TextView) l.findViewById(R.id.tgr_prezz)).setText("€" prodotti.get(groupPosition).get(childPosition)[PRE]);
((TextView) l.findViewById(R.id.tgr_note)).setText(prodotti.get(groupPosition).get(childPosition)[NOT]);
((TextView) l.findViewById(R.id.tgr_sigla)).setText(prodotti.get(groupPosition).get(childPosition)[SIG]);
return l;
}
Вы можете увидеть XML, который я раздуваю, здесьhttp://pastebin.com/DwxdxJSK
Ответ №1:
Вы проверили свой графический макет в вашем XML-файле, изображение не отображается в вашем графическом макете из TextView with id as tgr_descr is given match_parent
за того, что вы Imageview не видны.
Для проверки того, видно ли изображение, просто используйте android:src="@drawable/icon"
Попробуйте этот код :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:weightSum="1">
<ImageView android:id="@ id/tgr_dispon" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_toLeftOf="@ id/tgr_descr"
android:layout_alignParentLeft="true" android:paddingLeft="7dp"
android:src="@drawable/icon"/>
<TextView android:id="@ id/tgr_descr" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_alignParentTop="true"
android:layout_toLeftOf="@ id/tgr_prezz" android:text="descr"
android:textAppearance="?android:attr/textAppearanceMedium" android:padding="7dp"/>
<TextView android:id="@ id/tgr_prezz" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_alignParentTop="true"
android:layout_alignParentRight="true" android:text="prezzo"
android:textAppearance="?android:attr/textAppearanceMedium" android:padding="7dp"/>
<TextView android:id="@ id/tgr_note" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_below="@ id/tgr_descr"
android:layout_alignParentLeft="true" android:text="note"
android:textAppearance="?android:attr/textAppearanceSmall" android:paddingLeft="7dp"/>
<TextView android:id="@ id/tgr_sigla" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_toRightOf="@ id/tgr_note"
android:layout_below="@ id/tgr_descr" android:layout_alignParentRight="true"
android:text="sigla" android:textAppearance="?android:attr/textAppearanceSmall"
android:paddingLeft="7dp"/>
</RelativeLayout>
Комментарии:
1. Я проверю ваше предложение. я скоро вернусь
2. в любом случае ваше указание было полезным, сейчас я повторно тестирую свой XML блок за блоком, чтобы найти скрытый компонент 🙂
3. @STTLCU я проверил.. Это работает.. Назначьте строку s =»true» и попробуйте получить статическое значение
4. конечно, я полностью удалил часть проверки строки, чтобы попробовать код 🙂
5. @STTLCU В вашем графическом макете возможно ли просмотреть ваше изображение?