Android入门/综合(十八)

1. 主要包含istview,Adapter,ImageView,HostTabs等等widget的使用




项目结构



AppMain.java

@SuppressLint("ParserError")
public class AppMain extends Activity {

    Button xiaoqiao_btn,xiaoc_btn ;
	
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);// 必须在setContentView之前使用
        
        setContentView(R.layout.main); 
        xiaoqiao_btn = (Button)findViewById(R.id.xiaoqiao_btn);
        xiaoc_btn = (Button)findViewById(R.id.xiaoc_btn);
        xiaoqiao_btn.setOnClickListener(listener);
        xiaoc_btn.setOnClickListener(listener);
    }

    private OnClickListener listener = new OnClickListener(){
		
		public void onClick(View v) {
			switch (v.getId()) 
			{
				case R.id.xiaoqiao_btn:{
					xiaoqiao_btn.setBackgroundResource(R.drawable.xiaoqiao_2);
					Intent intent = new Intent();
					intent.setClass(AppMain.this, PhotoTabs.class);
					AppMain.this.startActivity(intent);	
					break;
				}
				case R.id.xiaoc_btn:{
					xiaoc_btn.setBackgroundResource(R.drawable.xiaoc_2);
					Intent intent = new Intent();
					intent.setClass(AppMain.this, FoodList.class);
					AppMain.this.startActivity(intent);	
					break;
				}
			}
		}
	};
    
}


FoodList.java

public class FoodList extends Activity {

	
	private ListView listview;
	//静态数据
	private String[] titles = {"猪肉", "猪肝", "猪血", "羊肉", "牛肉", "牛肝", "鹅肉", "兔肉", "狗肉",
			"鸭肉", "鸡肉", "驴肉", "鸡蛋", "鲤鱼", "黄鱼", "虾", "虾皮", "螃蟹", "蛤", "鳖肉",
			"田螺", "大蒜", "葱", "萝卜", "芹菜", "韭菜", "菠菜", "莴笋", "竹笋", "西红柿", "洋葱",
			"醋", "茶", "豆浆", "红糖", "蜂蜜", "牛奶", "白酒", "啤酒"};
	private String[] texts = {"黄莲", "荞麦 雀肉 豆芽", "何首乌 地黄 黄豆 海带", "醋 红豆 半夏 南瓜",
			"橄榄 板粟 韭菜 ", "鲇鱼 鳗鱼 柿子", "狗肉 鲤鱼 柑橘", "鲤鱼 绿豆", "鳖", "鲤鱼", "金针菇",
			"豆浆 兔肉", "甘草 麦冬", "荞麦面 ", "富含维生素C的食物", "红枣 黄豆",
			"梨 柿子 茄子 花生仁 石榴 香瓜 芹菜 蜂蜜 西红柿", "芹菜 ", "鸭肉", "香瓜 木耳 牛肉 蚕豆 玉米",
			"地黄 何首乌 白术", "枣", "橘子 木耳", "黄瓜 蚬、蛤、蟹", "牛肉", "豆腐 鳝鱼 黄瓜", "蜂蜜",
			"糖浆", "白酒", "蜂蜜", "胡萝卜", "酒", "蜂蜜", "竹笋", "皮蛋", "豆腐 韭菜",
			"钙片果汁  药物 韭菜 柠檬", "胡萝卜 核桃 啤酒 红薯", "海鲜" };
	private int[] resIds = {R.drawable.pork, R.drawable.pigliver, R.drawable.pigblood,
			R.drawable.lamb, R.drawable.beef, R.drawable.beefliver,
			R.drawable.goose, R.drawable.rabbit, R.drawable.dog,
			R.drawable.duck, R.drawable.chicken, R.drawable.donkey,
			R.drawable.egg, R.drawable.carp, R.drawable.yellowfish,
			R.drawable.shrimp, R.drawable.shrimp2, R.drawable.crab,
			R.drawable.clam, R.drawable.turtle, R.drawable.riversnail,
			R.drawable.garlic, R.drawable.onion, R.drawable.radish,
			R.drawable.celery, R.drawable.leek, R.drawable.spinach,
			R.drawable.lettuce, R.drawable.bamboo, R.drawable.tomato,
			R.drawable.foreignonion, R.drawable.vinegar, R.drawable.tea,
			R.drawable.beanmilk, R.drawable.brownsuger, R.drawable.honey,
			R.drawable.milk, R.drawable.whitespirit, R.drawable.beer };
	private static final String [] foodjianjie={"猪肉是目前人们餐桌上最常见的肉类食物之一,猪瘦肉中富含铁,容易被人体吸收,能预防贫血。猪肉味甘咸,性平,有补虚、滋阴、养血、润燥的功效。"
	     	,"猪肝味甘、苦,性温,归肝经。猪肝富含多种营养素,是预防缺血性贫血的首选食品,猪肝中的铁容易被人体吸收,是理想的补肝、明目、养血的食品。"
	     	,"猪血味甘、苦,性温,有解毒清肠、补血美容的功效。猪血富含维生素B2、维生素C、蛋白质、铁、磷、钙、尼克酸等营养成分。",
	     	"羊肉味甘、性温,具有补虚劳,祛寒冷,温补气血;益肾气,补形衰,开胃健力的功效。用于气血不足、腹部冷痛、体虚怕冷、腰膝酸痛、面黄肌瘦、血气两亏等一切虚状均有补益效果,最适宜冬季食用。",
	     	"牛肉有补中益气,滋养脾胃,强健筋骨,化痰息风,止渴止涎之功效。牛肉富含蛋白质,而脂肪少,氨基酸组成比猪肉更接近人体需要,能提高机体抗病能力。",
	     	"养血,补肝,明目。牛肝中铁质丰富,是补血食品中最常用的食物。"
	     	,"鹅肉含有人体生长发育所必需的各种氨基酸,其组成接近人体所需氨基酸的比例,从生物学价值上来看,鹅肉是是理想的高蛋白、低脂肪、低胆固醇的营养健康食品,其亚麻酸含量超过其它肉类。鹅肉性平、味甘,具有益气补虚,和胃止渴的功效。",
	     	"兔肉质地细嫩,味道鲜美,营养丰富,与猪牛、羊肉相比较,兔肉营养成分独特,具有高铁、高钙、高磷脂和低脂肪、低胆固醇等特点,并且具有很高的消化率(可达85%),食后极易被消化吸收。",
	     	"狗肉温补脾胃、补肾助阳、壮力气、补血脉。狗肉不仅蛋白质含量高,而且蛋白质质量极佳,尤以球蛋白比例大,对增强机体抗病力和细胞活力及器官功能有明显作用。",
	     	"富含蛋白质、脂肪、铁、钾、糖等多种营养成分。其饱和脂肪酸的含量比猪肉、牛肉、羊肉少得多,脂肪酸熔点低,易于消化。所含胆固醇比鱼还要低一些。《本草纲目》记载:鸭肉主大补虚劳,最消毒热,利小便,除水肿,消胀满,利脏腑,退疮肿,定惊痫。",
	     	"鸡肉含丰富蛋白质,种类多,其含量比猪、牛、羊肉都高,而脂肪含量比其它肉类低,且多为不饱和脂肪酸,营养价值高,消化率高,很容易被人体吸收利用,有增强体力、强壮身体的作用。",
	     	"驴肉富含蛋白质,而且含有动物胶、骨胶原、钙、硫等成分,其中含有的高级不饱和脂肪酸,尤其是亚油酸、亚麻酸,对动脉硬化、冠心病、高血压有着良好的保健作用。中医认为:驴肉性味甘凉,有补气养血、滋阴壮阳、安神去烦功效。",
	     	"鸡蛋被认为是营养丰富的食品,含有蛋白质、脂肪、卵黄素、卵磷脂、维生素和铁、钙、钾等人体所需要的矿物质。鸡蛋味甘、性平,具有养心安神、补血、滋阴润燥的功效。",
	     	"鲤鱼的蛋白质不但含量高,而且质量也佳,人体消化吸收率可达96%,并能供给人体必需的氨基酸、矿物质、维生素A和维生素D。鲤鱼味甘、性平,具有健脾开胃、消水肿、利小便的作用。",
	     	"黄鱼含有丰富的蛋白质、微量元素和维生素,对人体有很好的补益作用。中医认为,黄鱼有和胃止血、益肾补虚、健脾开胃、安神止痢、益气填精之功效,对贫血、失眠、头晕、食欲不振及妇女产后体虚有良好疗效。",
	     	"虾营养极为丰富,含蛋白质是鱼、蛋、奶的几倍到几十倍;还含有丰富的钾、碘、镁、磷等矿物质及维生素A、氨茶碱等成分。",
	     	"虾皮中含有丰富的蛋白质和矿物质,尤其是钙的含量极为丰富,是缺钙者补钙的较佳途径之一。",
	     	"螃蟹含有丰富的蛋白质及钙、磷、铁等微量元素,对身体有很好的滋补作用。中医学认为螃蟹性寒、味咸,有清热、散血结、续断伤、理经脉和滋阴等功用;其壳可清热解毒、破淤清积止痛。",
	     	"肉味鲜美、营养丰富,蛋白质含量高,氨基酸的种类组成及配比合理; 脂肪含量低,不饱和脂肪酸较高,易被人体消化吸收。蛤味咸、性寒,有滋阴、利水、化痰、软坚的功效。",
	     	"鳖肉偏于滋阴补肾、补虚。是久病体弱,消瘦无力等人群的食疗佳品。鳖味咸、性平,具有滋阴凉血、平肝益气、散结软坚、消淤等功效。",
	     	"含蛋白质、脂肪、碳水化合物、钙、磷、铁、硫胺素、核黄素、尼克酸、维生素。田螺味咸、性寒,有清热利水、除湿解读的功效。",
	     	"大蒜含有丰富的营养成分,尤其是具有独特生物活性的蒜素等含硫化合物及硒蛋白等功能成分,这些物质具有显著的医用和食用价值。中医理论认为,大蒜生者辛热、熟者甘温,可除寒湿、怯阴邪、下气暖中、消谷化积、破恶血、攻冷积。",
	     	"葱的主要营养成分是蛋白质、糖类、维生素A原(主要在绿色葱叶中含有)、食物纤维以及磷、铁、镁等矿物质等。中医记载:葱能发汗解表,散寒通阳,解毒散凝。主治风寒感冒轻症,痈肿疮毒,痢疾脉微,寒凝腹痛,小便不利等病症。",
	     	"萝卜含有丰富的碳水化合物、纤维素、维生素C及钙、磷、钾、铁等矿物质,营养丰富;萝卜还有促进新陈代谢,增进食欲的作用,对于治疗消化不良、胃脘胀满、咳嗽多痰、胸闷气喘、伤风感冒有一定的疗效。",
	     	"芹菜含有蛋白质、脂肪、碳水化合物、纤维素、维生素、矿物质等营养成分。其中,维生素B、P的含量较多。矿物质元素钙、磷、铁的含量更是高于一般绿色蔬菜。",
	     	"韭菜性温,味辛,具有补肾起阳作用,且含有大量维生素和粗纤维,能增进胃肠蠕动,治疗便秘。",
	     	"菠菜含水量高(90%~93%),而热量低,是镁、铁、钾和维生素A的优质来源;也是钙和维生素C的上等来源。所含的磷、锌、叶酸和维生素B6也较为丰富。菠菜中含有的维生素C能够提高铁的吸收率,并促进铁与造血的叶酸共同作用,有效地预防贫血症。",
	     	"莴苣含蛋白质、脂粉、碳水化合物、钙、磷、铁、胡萝卜素、及维生素B、维生素C、尤其含烟酸较多。莴苣味道清新且略带苦味,可刺激消化酶分泌,增进食欲。其乳状浆液,可增强胃液、消化腺的分泌和胆汁的分泌,从而促进消化。",
	     	"具有滋阴凉血、和中润肠、清热化痰、解渴除烦、清热益气、利隔爽胃、利尿通便、解毒透疹、养肝明目、消食的功效,还可开胃健脾,宽肠利膈,通肠排便,开膈豁痰,消油腻,解酒毒。",
	     	"番茄富含维生素C,其含有的番茄红素有利尿和抑制细菌生长的作用,是优良的抗氧化剂,多吃番茄具有抗衰老作用,使皮肤保持白皙。西红柿味酸微甘、性平,具有生津止渴,健胃消食,凉血平肝,清热解毒,降低血压之功效。",
	     	"洋葱所含的微量元素硒是一种很强的抗氧化剂,能清除体内的自由基,增强细胞的活力和代谢能力,具有抗衰老的功效。",
	     	"醋可以开胃,促进唾液和胃液的分泌,帮助消化吸收,使食欲旺盛,消食化积。醋还有很好的抑菌和杀菌作用,能有效预防肠道疾病、流行性感冒和呼吸疾病。",
	     	"茶叶内含化合物500种左右,有些是人体必需的营养成分。如维生素类、蛋白质、氨基酸、类脂类、糖类及矿物质元素等,对人体有较高营养价值。有些是对人体有保健和药用价值的成分,如茶多酚、咖啡碱、脂多糖等,常喝茶有利于人体健康。",
	     	"豆浆含有丰富的植物蛋白,磷脂,维生素B1、B2,烟酸和铁、钙等矿物质,尤其是钙的含量,虽不及豆腐高,但比其他任何乳类都丰富。豆浆是防治高血脂、高血压、动脉硬化等疾病的理想食品。",
	     	"红糖中所含有的葡萄糖、果糖等多种单糖和多糖类能量物质,为人体提供能量。",
	     	"蜂蜜含有70%以上的转化糖,能够被人体肠壁细胞直接吸收利用,没有必要经人体消化,经常服用蜂蜜,能帮助消化。",
	     	"牛奶的营养成分很高,牛奶中的矿物质种类也非常丰富,除了我们所熟知的钙以外,磷、铁、锌、铜、锰、钼的含量都很多。牛奶是人体钙的最佳来源,而且钙磷比例非常适当,利于钙的吸收。牛奶中含组成人体蛋白质的氨基酸有20种,其中有8种是人体本身不能合成的,为必需氨基酸,牛奶是人类最理想的天然食品。",
	     	"白酒主要由水乙醇和少量微量元素组成。夜晚服用少量的白酒,可平缓的促进血液循环,起到催眠作用。饮少量白酒可刺激胃液分泌与唾液分泌,因而起到健胃和止疼痛、利小便及驱虫的作用。白酒味苦、甘、辛,性温,有毒,入心、肝、肺、胃经。",
	     	"啤酒营养丰富,其中含有丰富的氨基酸,是原料大麦含有的蛋白质经过酶的作用分解而产生的。且啤酒中还含有多种维生素。适量饮啤酒有强心、利尿、健胃的功效。"};

		 
	public void onCreate(Bundle savedInstanceState) {
		
		super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);// 必须在setContentView之前使用
		setContentView(R.layout.list);
		
		
		
		listview = (ListView)findViewById(R.id.users);
		listview.setAdapter(new ListViewAdapter(titles,texts,resIds));	
		listview.setOnItemClickListener(new OnItemClickListener() {	// 添加item点击监听
			public void onItemClick(AdapterView<?> arg0, 
					View arg1, int arg2,long arg3) {
				
				//这是数组里的数据啊 ,
				Intent intent=new Intent();
				intent.setClass(FoodList.this, foodInfo.class);
				intent.putExtra("drawable", resIds[arg2]);
				intent.putExtra("foodname", titles[arg2]);
				intent.putExtra("efoodnema", texts[arg2]);
				intent.putExtra("foodinfo", foodjianjie[arg2]);
			
				startActivity(intent);	
			}
		});
		//listview 添加长按菜单
		listview.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
			
			@Override
			public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
				menu.setHeaderTitle("长按菜单-ContextMenu");   
				menu.add(0, 0, 0, "弹出长按菜单0");
				menu.add(0, 1, 0, "弹出长按菜单1");   
			}
		}); 
    }
	//listview 长按菜单响应函数
	public boolean onContextItemSelected(MenuItem item) {
		setTitle("点击了长按菜单里面的第"+item.getItemId()+"个项目"); 
		
		switch (item.getItemId()){
				case 0:	Toast.makeText(FoodList.this, "点击了第0个项目",Toast.LENGTH_SHORT).show();
					break;
				case 1:	Toast.makeText(FoodList.this,"点击了第1个项目",Toast.LENGTH_SHORT).show();
					break;
		}
		return super.onContextItemSelected(item);
	}
	
	
	// 重写适配器 内部类
	 public class ListViewAdapter extends BaseAdapter {  
	        View[] itemViews;    
	        // 实例对象itemViews[]
	        public ListViewAdapter(String[] itemTitles, String[] itemTexts,int[] itemImageRes) 
	        {  
	        	itemViews = new View[itemTitles.length];  
	            for (int i = 0; i < itemViews.length; i++) {  
	                itemViews[i] = makeItemView(itemTitles[i], itemTexts[i], itemImageRes[i]);  
	            }  
	        }  

	        private View makeItemView(String strTitle, String strText, int resId) 
	        {  
	        	//创建一个LayoutInflater对象
	            LayoutInflater inflater = (LayoutInflater) 
	            		FoodList.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
	            //动态创建View对象itemView与 R.layout.item绑定 
	            View itemView = inflater.inflate(R.layout.item, null);   				
	            
	            InitInflaterView(itemView,strTitle,strText,resId);

	            return itemView;  
	        }  
	        /**
	         *  实例 ListView每一个Item对象
	         * */
	        private void InitInflaterView(View itemView,String strTitle,String strText, int resId){
	        	 	TextView title = (TextView)itemView.findViewById(R.id.itemTitle);  
		            TextView text = (TextView) itemView.findViewById(R.id.itemText);  
		            ImageView image = (ImageView) itemView.findViewById(R.id.itemImage);
		            
		            title.setText(strTitle);  
		        	text.setText(strText);  
	            	image.setImageResource(resId);  
	        }
	        public int getCount() {  
	            return itemViews.length;  
	        }  
	        public View getItem(int position) {  
	            return itemViews[position];  
	        } 
	        public long getItemId(int position) {  
	            return position;  
	        }    
	        public View getView(int position, View convertView, ViewGroup parent) {  
	            if (convertView == null)  
	                return itemViews[position];  
	            return convertView;  
	        }  
	    }  	
}
FoodInfo.java

public class foodInfo extends ListActivity{

	Button image=null;
	Button back=null;
	TextView foodinfo=null;
	String[] efood={"黄连"};
	String [] efoodinfo={"猪肉多脂,酸寒滑腻。若中药配方中以黄莲为主时,应忌食猪肉,不然会降低药效,且容易引起腹泻。"};
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.foodinfo);
		
		// 得到Intent传递的值
		Bundle bundle = getIntent().getExtras();
		
		int drawable=bundle.getInt("drawable");
		String foodname=bundle.getString("foodname");
		String efoodname=bundle.getString("efoodnema");
		String foodinfos=bundle.getString("foodinfo");
		
		image=(Button)findViewById(R.id.Button);
		foodinfo=(TextView)findViewById(R.id.TextView03);
		back=(Button)findViewById(R.id.backbutton);
		
		image.setBackgroundResource(drawable); // 设置传递过来的图片作为背景图片
		image.setText(foodname);
		foodinfo.setText(foodinfos);
		back.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				Button b=(Button)v;
				b.setBackgroundResource(R.drawable.btn_back_active);
				Intent intent=new Intent(foodInfo.this, FoodList.class);	// Back FoodList.class
				startActivity(intent);
			}
		});
		
		List<Map<String, Object>> data=new ArrayList<Map<String,Object>>();
		for(int i=0;i<efood.length;i++){
			Map<String, Object> map=new HashMap<String, Object>();
			map.put("TextView04", efood[i]);
			map.put("TextView05", efoodinfo[i]);
			data.add(map);
		}
		SimpleAdapter adapter=new SimpleAdapter(
					this,
					data,
					R.layout.ex_foodinfo,
					new String[]{"TextView04","TextView05"} ,
					new int[]{R.id.TextView04,R.id.TextView05}
		);
		setListAdapter(adapter);
	}
}
PhtotTabs.java

public class PhotoTabs extends TabActivity {	// TabActivity

	public Context context;
	public simple simpleAdapter;
	private GridView gridview;
	private final static String TAB1 = "画廊";
	private final static String TAB2 = "九宫图";
	private final static String TAB3 = "画廊+ImageView";
	private Gallery mGallery;  
	
	private int[] resIds = {R.drawable.pork, R.drawable.pigliver, R.drawable.pigblood,
			R.drawable.lamb, R.drawable.beef, R.drawable.beefliver,
			R.drawable.goose, R.drawable.rabbit, R.drawable.dog,
			R.drawable.duck, R.drawable.chicken};
	
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        PreUIInit();
        mGalley();		// 画廊
        Night();		// 九宫图
    }

    private void PreUIInit()
    {
    	setContentView(R.layout.phototaps_main);
  	
    	// 得到TabHost对象
    	TabHost tabs = getTabHost();
    	TabSpec tab1 = tabs.newTabSpec(TAB1);  
    	TabSpec tab2 = tabs.newTabSpec(TAB2);  
    //	TabSpec tab3 = tabs.newTabSpec(TAB3);
    	newTabSpec(TAB1,tab1,tabs,R.id.Tab1);
    	newTabSpec(TAB2,tab2,tabs,R.id.Tab2);
    //	newTabSpec(TAB3,tab3,tabs,R.id.Tab3);
    }
    private void newTabSpec(String TAB,TabSpec mtab,TabHost tabs,int id){	
    	mtab.setIndicator(TAB);			//设置选项卡显示的名字。
    	mtab.setContent(id); 			// 指定id的内容作为该Tabs的标签 ,具体指向XML文件中的 LinearLayout的id
    	tabs.addTab(mtab);	
    }
    

    private void mGalley(){
    	mGallery = (Gallery)findViewById(R.id.gallery);
    	
    	 try {  
             mGallery.setAdapter(new ImageAdapter(this));  
         } catch (IllegalArgumentException e) {  
             e.printStackTrace();  
         } catch (IllegalAccessException e) {  
             e.printStackTrace();  
         }  
    	
	    mGallery.setOnItemClickListener(new OnItemClickListener() 
        {  
            public void onItemClick(AdapterView parent, View v, int position, long id) {  
            	//MainActivity.this.setTitle(String.valueOf(position));  
            }  
        });
		
    }// End 
    
    private void Night()
    {
			gridview = (GridView)findViewById(R.id.gridview);
		
			ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String,Object>>();
			// 实例list的目的, 是作为Adapter的数据源
			for(int i=0;i<9;i++)
			{
				HashMap<String, Object> map = new HashMap<String, Object>();
				map.put("ItemImage", resIds[i]);
				map.put("ItemText", "No."+i);
				list.add(map);
			}		
			simpleAdapter = new simple(this, 
						list,					//数据源
						R.layout.night,			//Items 布局
						new String[]{"ItemImage","ItemText"},// 动态数组list 对应的子项的名称
						new int[]{R.id.ItemImage,R.id.ItemText}// night.xml 内对应组件的id
			);
				
	    	gridview.setAdapter(simpleAdapter);
			gridview.setOnItemClickListener(Itemlistener);
		
    }
	// GridView Night 子项 item 点击事件处理
	private OnItemClickListener Itemlistener = new OnItemClickListener() {

		public void onItemClick(AdapterView<?> parent, 	//AdapterView被点击时发生
								View view, 				//AdapterView内被点击的视图
								int position,			//适配器中的位置的视图
								long id)				//被点击的项行的id
		 {
				@SuppressWarnings("unchecked")
				//从列表中的指定位置获取数据。
				HashMap<String, Object> item = (HashMap<String, Object>)parent.getItemAtPosition(position);
			   
				setTitle((String)item.get("ItemText"));
				
				Log.v("ONITEMCLICK","position = "+position);
				simpleAdapter.setSelected(position);
		 }
		
	};
	
	// GridView Night 内部类  
	public  class simple extends SimpleAdapter{
		
		private List<HashMap<String, Object>> list;
		private int selected = -1;	// int 的值默认为0,所以正常显示会将第0个图 给显示出来
	
		public simple(Context context, List<HashMap<String, Object>> data,
				int resource, String[] from, int[] to) 
		{
			super(context, data, resource, from, to);	
			this.list = data;
		}
		
		public void setSelected(int position)
		{
			this.selected = position;
			notifyDataSetChanged(); // 通知数据已经改变后刷新
			Toast.makeText(PhotoTabs.this, "selected = "+selected, Toast.LENGTH_SHORT).show();
		}			
		// 获得Items的数量
		public int getCount(){	
			return this.list.size();
		}
		// 根据ListView位置返回View
		public Object getItem(int position){
			return this.list.get(position);
		}
		// 根据ListView位置得到List中的ID
		public long getItemId(int position){
			return position;
		}
		/**	
		 * 根据位置得到View对象	
		 * 3个参数[  List中的ID ],[ Items的视图  ],[  父类的视图  ]
		 */
		public View getView(int position, View convertView,ViewGroup parent){
			
			if(selected == position){
				 BlindInflater(convertView);
				 return convertView;
			}
			return super.getView(position, convertView, parent);
		}
		/**
		 * Blind Layout 
		 * */
		private void BlindInflater(View convertView){
			 LayoutInflater inflater =  (LayoutInflater)
	 				PhotoTabs.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		 	 convertView = inflater.inflate(R.layout.night, null);
		 	 
		 	InitInflater(convertView);
		}
		/**
		 * Selected  changed
		 * */
		private void InitInflater(View convertView){
			
			 ImageView img = (ImageView)convertView.findViewById(R.id.ItemImage);
			 TextView text = (TextView)convertView.findViewById(R.id.ItemText);
			 img.setImageResource(R.drawable.ic_launcher);  
			 text.setText(R.string.app_name);	 
		}
	} 
    
	// Gallery  重写内部类 
    private class ImageAdapter extends BaseAdapter{  
    	
        private Context mContext;  
        private ArrayList<Integer> imgList=new ArrayList<Integer>();  	
        private ArrayList<Object> imgSizes=new ArrayList<Object>();  	
        
        public ImageAdapter(Context c) throws IllegalArgumentException, IllegalAccessException{  
            mContext = c;  
            mField();
        }  
        private void mField() throws IllegalArgumentException, IllegalAccessException{
            Field[] fields = R.drawable.class.getDeclaredFields();  
            
            for (Field field : fields) {  
                if (!"icon".equals(field.getName())){  			//除了icon之外的图片  
                   
                    int index=field.getInt(R.drawable.class);   // 指定资源的内存地址 id
                    imgList.add(index);  
                    int size[]=new int[2];  
                    
                    Bitmap bmImg=BitmapFactory.decodeResource(getResources(),index);  
                    size[0]=bmImg.getWidth();
                    size[1]=bmImg.getHeight();  
                    imgSizes.add(size);  
                }  
            }  
        	
        }        
        public int getCount() {  
            return imgList.size();  
        }  
        public Object getItem(int position) {  
            return position;  
        }  
        public long getItemId(int position) {  
            return position;  
        }  
        
        /* 2  . 点击图片 事件*/
        public View getView(int position, View convertView, ViewGroup parent) {  
            ImageView i = new ImageView (mContext);  
            //请求指定position的资源id 
            i.setImageResource(imgList.get(position).intValue());  	
            /*
             * Tips:
             * 			setScaleType()
             * 			控制图像应如何调整大小或移动,以配合这个ImageView的大小。
             * 	setScaleTypeAPI : 	http://developer.android.com/reference/android/widget/ImageView.html#attr_android:scaleType 
             * */
            i.setScaleType(ImageView.ScaleType.CENTER_CROP);  
            //从imgSizes取得图片大小  
            int size[]= new int[2];  
            size=(int[]) imgSizes.get(position);  
            i.setLayoutParams(new Gallery.LayoutParams(size[0], size[1]));  
            return i;  
        }    
    }
	

}

                                                                                                                                                                                                                                                                                                         

XML文件

ex_foodinfo.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="horizontal" 
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	android:background="@android:color/white">
    <TextView 
		    android:text="zhurou" 
		    android:id="@+id/TextView04" 
		    android:layout_width="wrap_content" 
		    android:layout_height="wrap_content"
		    android:drawableLeft="@drawable/ex_food_icon"
		    android:gravity="center"
		    android:drawablePadding="20dp"
		    android:layout_margin="20dp"
		    android:textColor="@android:color/black" />
      
     <TextView
		     android:id="@+id/TextView05"
		   android:text="text1"
		   android:layout_width="fill_parent"
		   android:layout_height="wrap_content"
		   android:textSize="12dip"
		   android:background="@android:color/white"
		   android:textColor="@android:color/black"
		   android:maxLines="21"
		   android:width="10px"
		   android:layout_margin="20px"
		  />
</LinearLayout>

foodinfo.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
	  xmlns:android="http://schemas.android.com/apk/res/android"
	  android:layout_width="fill_parent"
	  android:layout_height="fill_parent"
	  android:orientation="vertical"
	  android:background="@android:color/white">
	  <LinearLayout
	  		xmlns:android="http://schemas.android.com/apk/res/android"
		 	android:orientation="horizontal"
		  	android:layout_width="fill_parent"
		  	android:layout_height="wrap_content"
		  	android:background="@drawable/food_info_title_background">
			  <Button
				  android:id="@+id/backbutton"
				  android:background="@drawable/btn_back"
				  android:layout_width="wrap_content"
				  android:layout_height="wrap_content"
				  android:layout_margin="10dp" />
	  </LinearLayout>
  
 
  <RelativeLayout
		  xmlns:android="http://schemas.android.com/apk/res/android"
		  android:layout_width="fill_parent"
		  android:layout_height="wrap_content"
		  android:background="@android:color/white" >
		  <Button
			  android:id="@+id/Button"
			  android:layout_width="100dp"
			  android:layout_height="100dp"
			  android:background="@drawable/pork"
			  android:layout_margin="10dp"
			  android:padding="4dp"
			  android:clickable="false"
			  android:textColor="@android:color/black"/>
		  <TextView
			   android:id="@+id/TextView03"
			   android:text="text1"
			   android:layout_width="350dp"
			   android:layout_height="wrap_content"
			   android:background="@android:color/white"
			   android:width="10px"
			   android:layout_toRightOf="@id/Button" 
			   android:layout_margin="10dp"/>
  </RelativeLayout>
  <TextView
	  android:layout_width="fill_parent"
	  android:layout_height="wrap_content"
	  android:background="@drawable/food_info_middle_background"
	  android:text="middle"
	  android:textColor="@android:color/white"
	  android:gravity="center_vertical"
	  android:layout_marginTop="15dp"
	  />
 	 <ListView
		  android:id="@id/android:list"
		  android:layout_width="fill_parent"
		  android:layout_height="wrap_content"
		  android:focusable="false"
		  android:background="@android:color/white"
	  />
</LinearLayout>
item.xml

<?xml version="1.0" encoding="utf-8"?>  
<RelativeLayout   
         android:layout_width="fill_parent"   
         xmlns:android="http://schemas.android.com/apk/res/android"   
       	 android:layout_height="?android:attr/listPreferredItemHeight"
         android:paddingBottom="4dp"   
         android:paddingLeft="12dp">  
         <ImageView   
                android:id="@+id/itemImage"
                android:layout_width="wrap_content" 
                android:layout_height="fill_parent"
                android:layout_alignParentTop="true" 
                android:layout_alignParentBottom="true"
                android:adjustViewBounds="true"
                android:padding="2dip" 
                android:contentDescription="@string/app_name"/>   
         <TextView   
               android:text="TextView01"   
               android:layout_height="wrap_content"   
               android:layout_width="fill_parent"   
               android:id="@+id/itemTitle" 
               android:layout_toRightOf="@+id/itemImage"
                android:textSize="20dip"/>  
         <TextView   
               android:text="TextView02"   
               android:layout_height="wrap_content"   
               android:layout_width="fill_parent"   
               android:id="@+id/itemText" 
               android:layout_toRightOf="@+id/itemImage" 
               android:layout_below="@+id/itemTitle"/>  
         <TextView       
                android:id="@+id/expand"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                
                android:layout_alignParentRight="true" 
                android:layout_alignParentTop="true"
                android:layout_alignWithParentIfMissing="true" 
                
                android:gravity="center_vertical"
                android:text="Click" 
                android:textSize="22px" 
                android:drawableRight="@drawable/expand"
                />            
</RelativeLayout> 
list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
	  xmlns:android="http://schemas.android.com/apk/res/android"
	  android:id="@+id/linearlayout1"
	  android:orientation="vertical"
	  android:layout_width="wrap_content"
	  android:layout_height="wrap_content">
  	<!--  search dialog -->
	 <LinearLayout
			    android:id="@+id/LinearLayout02"
			    xmlns:android="http://schemas.android.com/apk/res/android"
			    android:orientation="horizontal"
			    android:layout_width="fill_parent"
			    android:layout_height="wrap_content"
			    android:background="@drawable/search_background"
			    android:gravity="center" >
			    
			    <EditText
				    android:id="@+id/ETSearch"
				    android:layout_width="200px"
				    android:layout_height="wrap_content"
			    />
			    <Button 
				    android:id="@+id/searchButton"
				    android:layout_width="wrap_content"
				    android:layout_height="wrap_content"
				    android:background="@drawable/search_btn"
			    />
			    <Button 
				    android:id="@+id/shuaxinButton"
				    android:layout_width="wrap_content"
				    android:layout_height="wrap_content"
				    android:background="@drawable/clear_btn"
			    />
    </LinearLayout>
   
    <ListView
	    android:id="@+id/users"
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"
	    android:background="@android:color/white"
    />
</LinearLayout>

main.xml
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:background="@drawable/homepage"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

   <Button
       android:id="@+id/xiaoqiao_btn"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginLeft="30dp"
       android:layout_marginRight="30dp"
       android:layout_marginTop="120dp"
       android:background="@drawable/xiaoqiao_1"
       android:gravity="center_horizontal" />

   <Button
       android:id="@+id/xiaoc_btn"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginLeft="30dp"
       android:layout_marginRight="30dp"
       android:layout_marginTop="30dp"
       android:background="@drawable/xiaoc_1"
       android:gravity="center_horizontal" />

</LinearLayout>

night.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:paddingBottom="4dp"
    android:layout_width="fill_parent" >
    
    <ImageView 
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/ItemImage"
        android:layout_centerHorizontal="true">
    </ImageView>
    <TextView   
               android:layout_width="wrap_content"   
               android:layout_below="@+id/ItemImage"   
               android:layout_height="wrap_content"   
               android:text="TextView"   
               android:layout_centerHorizontal="true"   
               android:id="@+id/ItemText">  
    </TextView>  
</RelativeLayout>

phototaps_main.xml

<?xml version="1.0" encoding="utf-8"?>
<TabHost	
    android:layout_width="match_parent"
    android:layout_height="match_parent"
   	xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"> 
    
    <TabWidget android:id="@android:id/tabs"  
        android:layout_height="wrap_content"
        android:layout_width="fill_parent">  
	</TabWidget>  
    
    <FrameLayout 
        android:id="@android:id/tabcontent"  
        android:paddingTop="65dp" 
        android:layout_width="match_parent"
        android:layout_height="match_parent"> 
        
        <!--  @+id/Tab1  -->
        <LinearLayout 
            android:layout_height="wrap_content" 
            android:id="@+id/Tab1" 
            android:orientation="horizontal" 
            android:layout_width="fill_parent">  
	       	        
	        <Gallery 
	    	    android:id="@+id/gallery"
	    	    android:layout_width="fill_parent"
	    	    android:layout_height="fill_parent"
	    	    />
		         
        </LinearLayout>  
        <!--  @+id/Tab2  -->
        <LinearLayout 
             android:layout_height="fill_parent" 
             android:id="@+id/Tab2"
             android:layout_width="fill_parent" 
             android:orientation="horizontal">      
			 <GridView
			     xmlns:android="http://schemas.android.com/apk/res/android"
			     android:id="@+id/gridview"
			     android:layout_width="fill_parent"
			     android:layout_height="fill_parent"
			     android:numColumns="auto_fit"
			     android:verticalSpacing="10dp"
			     android:listSelector="@drawable/ic_launcher"
			     android:horizontalSpacing="10dp"
			     android:columnWidth="90dp"
			     android:stretchMode="columnWidth"
			     android:gravity="center" 
			/>
            
         </LinearLayout>  
         <!--  @+id/Tab3  -->  
         <RelativeLayout 
             android:layout_height="wrap_content" 
             android:id="@+id/Tab3"
             android:layout_width="fill_parent" 
             android:orientation="horizontal">  
			<ImageSwitcher 
		        android:id="@+id/switcher"
		        android:layout_width="match_parent" 
		        android:layout_height="match_parent"/>
	    
		    <Gallery 
		        android:id="@+id/gallery"
		        android:background="#55000000"
		        android:layout_width="match_parent"
		        android:layout_alignParentBottom="true"
		        android:layout_alignParentLeft="true"
		        android:gravity="center_vertical"
		        android:spacing="16dp" 
		        android:layout_height="100dp"/>  
	              
           </RelativeLayout>  
        </FrameLayout>   
</TabHost>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值