问题描述:
菜单栏通常通过由icon和文本组成的GridView来实现,创建一个文本和图片的封装类很有必要。
解决方法:
1.通过level-list在drawable目录中创建图片资源
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="0" android:drawable="@drawable/menu_input_net" />
<item android:maxLevel="1" android:drawable="@drawable/menu_filemanager" />
<item android:maxLevel="2" android:drawable="@drawable/menu_downmanager" />
<item android:maxLevel="3" android:drawable="@drawable/menu_refresh" />
<item android:maxLevel="4" android:drawable="@drawable/menu_fullscreen" />
<item android:maxLevel="5" android:drawable="@drawable/menu_novel_mode" />
<item android:maxLevel="6" android:drawable="@drawable/menu_adapter_screen" />
<item android:maxLevel="7" android:drawable="@drawable/menu_search" />
<item android:maxLevel="8" android:drawable="@drawable/menu_bookmark" />
<item android:maxLevel="9" android:drawable="@drawable/menu_add_to_bookmark" />
<item android:maxLevel="10" android:drawable="@drawable/menu_quit" />
<item android:maxLevel="11" android:drawable="@drawable/menu_more" />
</level-list>
2.创建封装类MenuItemData
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LevelListDrawable;
public class MenuItemData {
private LevelListDrawable mLevelListDrawable;
private String mTitle[];
private int mCount;
public MenuItemData(LevelListDrawable levelListDrawable, String titleID[],
int count) {
mLevelListDrawable = levelListDrawable;
mTitle = title;
mCount = count;
}
public String getTitle(int index) {
return mTitle[index];
}
public Drawable getDrawable(int index) {
mLevelListDrawable.setLevel(index);
Drawable drawable = mLevelListDrawable.getCurrent();
return drawable;
}
public int getCount() {
return mCount;
}
}
3.得到文本和图片
String[] menuName = getResources().getStringArray(
R.array.menu_item_name);
LevelListDrawable levelListDrawable = (LevelListDrawable) getResources()
.getDrawable(R.drawable.menu_image_list);
mMenuItemData2 = new MenuItemData(levelListDrawable,menuName,menuName.length);