Android入门之ActivityGroup + GridView 实现Tab分页标签

时间:2014-08-18 11:59:54   收藏:0   阅读:324

很多客户端软件和浏览器软件都喜欢用 Tab 分页标签来搭建界面框架。读者也许会马上想到使用 TabHost 与 TabActivity 的组合,其实最常用的不是它们,而是由 GridView 与 ActivityGroup 的组合。每当用户在 GridView 选中一项, ActivityGroup 就把该项对应的 Activity 的 Window 作为 View 添加到 ActivityGroup 所指定的容器 (LinearLayout) 中。

接下来贴出本例运行的效果图 :

bubuko.com,布布扣

ImageAdapter 是本实例的关键之一,它继承于 BaseAdapter ,并加入一些自定义的方法。ImageAdapter的源码如下:

package com.ActivityGroupDemo;

import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
/**
 * 
 * @author GV
 *
 */
public class ImageAdapter extends BaseAdapter {
    private Context mContext; 
    private ImageView[] imgItems;
    private int selResId;
    public ImageAdapter(Context c,int[] picIds,int width,int height,int selResId) { 
        mContext = c; 
        this.selResId=selResId;
        imgItems=new ImageView[picIds.length];
        for(int i=0;i<picIds.length;i++)
        {
            imgItems[i] = new ImageView(mContext); 
            imgItems[i].setLayoutParams(new GridView.LayoutParams(width, height));//设置ImageView宽高 
            imgItems[i].setAdjustViewBounds(false); 
            //imgItems[i].setScaleType(ImageView.ScaleType.CENTER_CROP); 
            imgItems[i].setPadding(2, 2, 2, 2); 
            imgItems[i].setImageResource(picIds[i]); 
        }
    } 
 
    public int getCount() { 
        return imgItems.length; 
    } 
 
    public Object getItem(int position) { 
        return position; 
    } 
 
    public long getItemId(int position) { 
        return position; 
    } 
 
    /** 
     * 设置选中的效果 
     */  
    public void SetFocus(int index)  
    {  
        for(int i=0;i<imgItems.length;i++)  
        {  
            if(i!=index)  
            {  
                imgItems[i].setBackgroundResource(0);//恢复未选中的样式
            }  
        }  
        imgItems[index].setBackgroundResource(selResId);//设置选中的样式
    }  
    
    public View getView(int position, View convertView, ViewGroup parent) { 
        ImageView imageView; 
        if (convertView == null) { 
            imageView=imgItems[position];
        } else { 
            imageView = (ImageView) convertView; 
        } 
        return imageView; 
    } 
} 

SetFocus(int)这个方法是个关键点,即实现选中的效果。例如有ABCD4个Item,其中C被选中了,那么除C以外的Item都被设置为未被选中的样式,而C则设置为选中的样式。

 

接下来就开始写主Activity,主Activity包含GridView控件,名为gvTopBar,有2点是需要注意一下的。

Android入门之ActivityGroup + GridView 实现Tab分页标签,布布扣,bubuko.com

原文:http://www.cnblogs.com/a354823200/p/3918971.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!