文本图片数据的封装

问题描述:

菜单栏通常通过由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);






                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值