组图模块

使用ListView与GridView切换:


实现效果:





整体XML布局:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="5dp"
    android:orientation="vertical" >
    <ListView 
        android:id="@+id/lv_menu_groupphoto_listView"
        android:layout_width="match_parent"
    	android:layout_height="match_parent"
    	android:divider="@null"
    	android:textAlignment="1"
    	
        />
    <GridView 
        android:id="@+id/gv_menu_groupphoto_gridview"
        android:layout_width="match_parent"
    	android:layout_height="match_parent"
    	android:numColumns="2"
        ></GridView>

    
</FrameLayout>


局部布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <LinearLayout 
         android:layout_width="match_parent"
    	 android:layout_height="match_parent"
    	 android:orientation="vertical"       
        >
        <ImageView 
            android:id="@+id/iv_list_groupphoto_ImageView"
            android:layout_width="match_parent"
    	 	android:layout_height="0dp"  
    	 	android:layout_weight="5"     
    	 	android:src="@drawable/ic_launcher"      
            />
        <TextView 
            android:id="@+id/tv_list_groupphoto_TextView"
            android:layout_width="match_parent"
    	 	android:layout_height="0dp"  
    	 	android:layout_weight="1"
    	 	android:text="this is a textview"
    	 	android:gravity="center"
    	 	android:textSize="22sp"
            />
    </LinearLayout>
</LinearLayout>

实现代码:

可分为 绘图, 从网络获取数据,以及数据解析,太简单,无力写注释。。。。

package com.example.zhihuibj.BaseMenuDetailPager;

import java.lang.reflect.Type;
import java.util.ArrayList;

import com.example.zhihuibj.R;
import com.example.zhihuibj.domain.PhotoData;
import com.example.zhihuibj.domain.PhotoData.PhotoInfo;
import com.example.zhihuibj.global.GlobalContants;
import com.google.gson.Gson;
import com.lidroid.xutils.BitmapUtils;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;

import android.app.Activity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

/*
 * 菜单详情页-组图
 */
public class PhotoMenuDetailPager extends BaseMenuDetailPager{

	private ListView mListView;
	private GridView mGridView;
	private ArrayList<PhotoInfo> mphotolist;
	private PhotoAdapter mAdapter;

	
	public PhotoMenuDetailPager(Activity mActivity) {
		super(mActivity);
		// TODO Auto-generated constructor stub
	}
	

	@Override
	public View initView() {	
		
		View mView=View.inflate(mActivity, R.layout.menu_groupphoto, null);		
		mListView=(ListView) mView.findViewById(R.id.lv_menu_groupphoto_listView);
		mGridView=(GridView) mView.findViewById(R.id.gv_menu_groupphoto_gridview);
		
		return mView;
	}
	
	
	@Override
	public void initData() {
		
		PhotoMenuGetDataFromService();
	}
	
	
	/*
	 * 获取网路数据
	 * url还不确定
	 */
	private void PhotoMenuGetDataFromService() {
		HttpUtils mUtils= new HttpUtils(); 
		mUtils.send(HttpMethod.GET, GlobalContants.PHOTOS_URL, new RequestCallBack<String>(){

			@Override
			public void onSuccess(ResponseInfo<String> responseInfo) {
				String result  =(String) responseInfo.result;
				parseData(result);
			}

			@Override
			public void onFailure(HttpException error, String msg) {
				Toast.makeText(mActivity, msg, Toast.LENGTH_SHORT).show();
				error.printStackTrace();
				System.out.println("TabDetailPager : 解析错误!!!");				
			}			
			});
	}
	/*
	 * 解析数据
	 * 
	 */
	public void parseData(String result)
	{		
		Gson gson = new Gson();
	    PhotoData data = gson.fromJson(result, PhotoData.class);
	    mphotolist=data.data.news;
	    
	    if(mphotolist!=null)
	    {
	    	mAdapter= new PhotoAdapter();
	    	mGridView.setAdapter(new PhotoAdapter());	    	
	    	
	    }
	    
	}

	public class ViewHoder{
		public TextView vh_mTextView;
		public ImageView vh_mImageView;
	}
	
	
	public class PhotoAdapter extends BaseAdapter{

		private ViewHoder mViewHoder;
		private BitmapUtils mbitmaputils;

		public PhotoAdapter(){
			 mbitmaputils = new BitmapUtils(mActivity);
			// mbitmaputils.configDefaultLoadingImage(R.drawable.ic_launcher);
		}
		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return mphotolist.size();
		}

		@Override
		public PhotoInfo  getItem(int position) {
			// TODO Auto-generated method stub
			return mphotolist.get(position);
		}

		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {

			/*
			 * 绘图
			 */
			if(convertView==null)
			{
				convertView = View.inflate(mActivity, R.layout.list_groupphoto, null);
				mViewHoder=new ViewHoder();
				
				mViewHoder.vh_mTextView=(TextView) convertView.findViewById(R.id.tv_list_groupphoto_TextView);
				mViewHoder.vh_mImageView=(ImageView) convertView.findViewById(R.id.iv_list_groupphoto_ImageView);
				
				convertView.setTag(mViewHoder);
			}
			else
			{
				mViewHoder=(ViewHoder) convertView.getTag();
			}			
			
			/*
			 * 放数据
			 */
			PhotoInfo item=getItem(position);
			mViewHoder.vh_mTextView.setText(item.title);			
			mbitmaputils.display(mViewHoder.vh_mImageView, item.listimage.replace("10.0.2.2", "192.168.56.1"));
			
			return convertView;
		}
		
	}
	
	
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值