当前位置: 代码迷 >> Android >> Android 施用Gallery实现Tab
  详细解决方案

Android 施用Gallery实现Tab

热度:60   发布时间:2016-05-01 17:13:17.0
Android 使用Gallery实现Tab
main.xml布局文件:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"	android:orientation="vertical" android:layout_width="fill_parent"	android:layout_height="fill_parent">	<Gallery android:id="@+id/gallery" android:layout_width="fill_parent"		android:layout_height="wrap_content" android:layout_marginTop="30dp"		android:unselectedAlpha="1" android:spacing="1dip" /></LinearLayout>


values/attrs.xml:
<?xml version="1.0" encoding="utf-8"?><resources>    <declare-styleable name="Gallery">        <attr name="android:galleryItemBackground" />    </declare-styleable></resources>


values/strings.xml:
<?xml version="1.0" encoding="utf-8"?>  <resources>      <string name="hello">Hello World, Date!</string>      <string name="app_name">丸子-Widget</string>  </resources>  


drawable/tab_button_select.xml:
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android">	<gradient android:startColor="#FF1B1B1B" android:endColor="#FF969696"		android:angle="90.0">	</gradient></shape>


drawable/tab_button_unselect.xml:
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android">	<gradient android:startColor="#FF000000" android:endColor="#FF474747"		android:angle="90.0">	</gradient></shape>


IaiaiActivity.java类:
package com.iaiai.activity;import java.util.Arrays;import java.util.Collections;import java.util.List;import android.app.Activity;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Color;import android.os.Bundle;import android.view.Gravity;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.TextView;/** *  * <p> * Title: IaiaiActivity.java * </p> * <p> * E-Mail: [email protected] * </p> * <p> * QQ: 176291935 * </p> * <p> * Http: iaiai.iteye.com * </p> * <p> * Create time: 2011-6-26 * </p> *  * @author 丸子 * @version 0.0.1 */public class IaiaiActivity extends Activity {	private Gallery gallery;	private TabAdapter textAdapter;	private static final String[] PROGRAM_NAMES = { "中央一台", "中央二台", "中央三台",			"中央四台", "中央五台", "中央六台", "中央七台", "中央八台", };	@Override	public void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.main);		gallery = (Gallery) findViewById(R.id.gallery);		textAdapter = new TabAdapter(this, Arrays.asList(PROGRAM_NAMES));		gallery.setAdapter(textAdapter);		gallery.setOnItemClickListener(new OnItemClickListener() {			@Override			public void onItemClick(AdapterView<?> parent, View view,					int position, long id) {				TabAdapter adapter = (TabAdapter) parent.getAdapter();				adapter.setSelectedPos(position);			}		});	}	public class TabAdapter extends BaseAdapter {		private Context mContext;		private List<String> mList;		private int mSelectedPos;		public TabAdapter(Context context, List<String> list) {			mContext = context;			TypedArray a = obtainStyledAttributes(R.styleable.Gallery);			a.recycle();			if (list == null)				list = Collections.emptyList();			mList = list;		}		public void setSelectedPos(int pos) {			if (pos != mSelectedPos) {				mSelectedPos = pos;				notifyDataSetChanged();			}		}		public int getSelectedPos() {			return mSelectedPos;		}		public int getCount() {			return mList.size();		}		public Object getItem(int position) {			return mList.get(position);		}		public long getItemId(int position) {			return position;		}		public View getView(int position, View convertView, ViewGroup parent) {			TextView text = null;			if (convertView == null) {				text = new TextView(mContext);			} else {				text = (TextView) convertView;			}			text.setTextColor(Color.WHITE);			text.setText(mList.get(position));			text.setLayoutParams(new Gallery.LayoutParams(102, 40));			text.setGravity(Gravity.CENTER);			if (position == mSelectedPos)				text.setBackgroundResource(R.drawable.tab_button_select);			else				text.setBackgroundResource(R.drawable.tab_button_unselect);			return text;		}	}}


运行结果:
  相关解决方案