即使将它们放在抽屉适配器中,我也无法让我的抽屉显示图像。它显示文本很好,所以它不是一个全部绘图的问题,它只是设置图标。
这是适配器的代码:
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if(v==null){
v=LayoutInflater.from(getContext()).inflate(R.layout.drawer_item, null);
}
DrawerPair dp = getItem(position);
TextView description = (TextView) v.findViewById(R.id.drawer_description);
if(description!=null){
description.setText(dp.title);
description.setCompoundDrawables(dp.icon, null, null, null);
}
return v;
}
布局如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:gravity="right"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/drawer_description"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
</LinearLayout>
这就是它的设定方式。图标是png图像:
mDrawerListView.setAdapter(new DrawerAdapter(
getActionBar().getThemedContext(),
R.layout.drawer_item,
new DrawerPair[]{
new DrawerPair("title1",getResources().getDrawable(R.drawable.icon1)),
new DrawerPair("title2",getResources().getDrawable(R.drawable.icon2)),
new DrawerPair("title3",getResources().getDrawable(R.drawable.icon3))
}));
答案 0 :(得分:1)
在设置为setCompoundDrawables之前,请执行以下代码行,它将正常工作。
Drawable drawable = dp.icon;
drawable.setBounds(0,0,50,50); //对于前者,我给了50,根据你的设计,你可以改变。
然后设置为这样的文本视图。
description.setCompoundDrawables(drawable,null,null,null);
现在它可以正常工作。