Android控件详解之标签控件
来源:互联网 发布:js点击图片全屏显示 编辑:程序博客网 时间:2024/05/20 02:54
我将Android控件的标签控件的学习知识总结一下和大家共享包括(TabHiost)
在Android开发中,切换信息界面就是需要用到标签控件,Android源生提供了TabHost控件。
目前使用的比较少了,大家都喜欢直接自定义。
1、TatHost控件
Tabhost是标签控件的核心类,也是标签的集合。每一个标签是一个TabHost.TabSpec对象。通过TabHost.addTab方法添加多个标签对象。
看看下面的实例:
main.xml
<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent" android:layout_height="fill_parent"><Button android:id="@+id/button" android:layout_width="fill_parent"android:layout_height="wrap_content" android:text="切换到第3个标签" /></FrameLayout>gallery.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" /><ImageSwitcher android:id="@+id/imageswitcher"android:layout_width="fill_parent" android:layout_height="wrap_content"android:layout_marginTop="30dp" /></LinearLayout>rating.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:gravity="center_vertical"><RatingBar android:id="@+id/ratingbar" android:layout_width="wrap_content"android:layout_height="wrap_content" android:numStars="5"/></LinearLayout>rating_main.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:gravity="center_vertical"><ImageView android:id="@+id/ivLogo" android:layout_width="60dp"android:layout_height="60dp" android:src="@drawable/icon"android:paddingLeft="5dp" /><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="wrap_content"android:layout_height="wrap_content" android:gravity="right"android:padding="10dp"><TextView android:id="@+id/tvApplicationName"android:layout_width="wrap_content" android:layout_height="wrap_content"android:textSize="16dp" /><TextView android:id="@+id/tvAuthor" android:layout_width="wrap_content"android:layout_height="wrap_content" android:layout_below="@id/tvApplicationName"android:textSize="14dp" /></RelativeLayout><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="wrap_content" android:gravity="right"android:padding="10dp"><TextView android:id="@+id/tvRating" android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="5.0" /><RatingBar android:id="@+id/ratingbar" android:layout_width="wrap_content"android:layout_height="wrap_content" android:numStars="5"style="?android:attr/ratingBarStyleSmall" android:layout_below="@id/tvRating" /></RelativeLayout></LinearLayout>java代码文件:
public class Main extends TabActivity implements OnClickListener{@Overridepublic void onClick(View view){// getTabHost().setCurrentTab(2);getTabHost().setCurrentTabByTag("tab3");}@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);TabHost tabHost = getTabHost();/* * LayoutInflater.from(this).inflate(R.layout.main, * tabHost.getTabContentView(), true); */LayoutInflater.from(this).inflate(R.layout.main,tabHost.getTabContentView(), true);tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("切换标签").setContent(R.id.button));tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("相册",getResources().getDrawable(R.drawable.icon1)).setContent(new Intent(this, GalleryActivity.class)));tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("评分").setContent(new Intent(this, RatingListView.class)));Button button = (Button) findViewById(R.id.button);button.setOnClickListener(this);}}
RatingListView.java
public class RatingListView extends ListActivity{private static String[] applicationNames = new String[]{ "多功能日历", "eoeMarket客户端", "耐玩的重力消砖块", "白社会", "程序终结者" };private static String[] authors = new String[]{ "李宁", "eoemobile", "wawa", "ApkHome", "lucyfa" };private static int[] resIds = new int[]{ R.drawable.calendar, R.drawable.eoemarket, R.drawable.brick,R.drawable.whitesociety, R.drawable.terminater };private static float[] applicationRating = new float[]{ (float) 5.0, (float) 5.0, (float) 3.5, (float) 5.0, (float) 4.0 };String inflater = Context.LAYOUT_INFLATER_SERVICE;LayoutInflater layoutInflater;private RatingAdapter raAdapter;private class RatingAdapter extends BaseAdapter{private Context context;public RatingAdapter(Context context){this.context = context;layoutInflater = (LayoutInflater) context.getSystemService(inflater);}@Overridepublic int getCount(){return applicationNames.length;}@Overridepublic Object getItem(int position){return applicationNames[position];}@Overridepublic long getItemId(int position){return position;}public void setRating(int position, float rating){applicationRating[position] = rating;notifyDataSetChanged();}@Overridepublic View getView(int position, View convertView, ViewGroup parent){LinearLayout linearLayout = (LinearLayout) layoutInflater.inflate(R.layout.rating_main, null);ImageView ivLogo = (ImageView) linearLayout.findViewById(R.id.ivLogo);TextView tvApplicationName = ((TextView) linearLayout.findViewById(R.id.tvApplicationName));TextView tvAuthor = (TextView) linearLayout.findViewById(R.id.tvAuthor);TextView tvRating = (TextView) linearLayout .findViewById(R.id.tvRating);RatingBar ratingBar = (RatingBar) linearLayout.findViewById(R.id.ratingbar);ivLogo.setImageResource(resIds[position]);tvApplicationName.setText(applicationNames[position]);tvAuthor.setText(authors[position]);tvRating.setText(String.valueOf(applicationRating[position]));ratingBar.setRating(applicationRating[position]);return linearLayout;}}@Overrideprotected void onListItemClick(ListView l, View view, final int position,long id){View myView = getLayoutInflater().inflate(R.layout.rating, null);final RatingBar ratingBar = (RatingBar) myView.findViewById(R.id.ratingbar);ratingBar.setRating(applicationRating[position]);new AlertDialog.Builder(this).setTitle(applicationNames[position]).setMessage("给应用程序打分").setIcon(resIds[position]).setView(myView).setPositiveButton("确定", new OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which){raAdapter.setRating(position, ratingBar.getRating());}}).setNegativeButton("取消", null).show();}@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);List<View> viewList = new ArrayList<View>();viewList.add(getLayoutInflater().inflate(R.layout.rating_main, null));raAdapter = new RatingAdapter(this);setListAdapter(raAdapter);}}GalleryActivity.java
public class GalleryActivity extends Activity implements OnItemSelectedListener,ViewFactory{private Gallery gallery;private ImageSwitcher imageSwitcher;private ImageAdapter imageAdapter; private int[] resIds = new int[]{ R.drawable.item1, R.drawable.item2, R.drawable.item3, R.drawable.item4,R.drawable.item5, R.drawable.item6, R.drawable.item7,R.drawable.item8, R.drawable.item9, R.drawable.item10,R.drawable.item11, R.drawable.item12, R.drawable.item13,R.drawable.item14, R.drawable.item15 };private int count = 3;public class ImageAdapter extends BaseAdapter{int mGalleryItemBackground;private Context mContext;public ImageAdapter(Context context){mContext = context;TypedArray typedArray = obtainStyledAttributes(R.styleable.Gallery);mGalleryItemBackground = typedArray.getResourceId(R.styleable.Gallery_android_galleryItemBackground, 0);}public int getCount(){return Integer.MAX_VALUE;}public Object getItem(int position){return position;}public long getItemId(int position){return position;}public View getView(int position, View convertView, ViewGroup parent){ImageView imageView = new ImageView(mContext);imageView.setImageResource(resIds[position % resIds.length]);imageView.setScaleType(ImageView.ScaleType.FIT_XY);imageView.setLayoutParams(new Gallery.LayoutParams(136, 88));imageView.setBackgroundResource(mGalleryItemBackground);return imageView;}}@Overridepublic void onItemSelected(AdapterView<?> parent, View view, int position,long id){imageSwitcher.setImageResource(resIds[position % resIds.length]);}@Overridepublic void onNothingSelected(AdapterView<?> parent){}@Overridepublic View makeView(){ImageView imageView = new ImageView(this);imageView.setBackgroundColor(0xFF000000);imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);imageView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));return imageView;}@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.gallery);gallery = (Gallery) findViewById(R.id.gallery);imageAdapter = new ImageAdapter(this);gallery.setAdapter(imageAdapter);gallery.setOnItemSelectedListener(this);imageSwitcher = (ImageSwitcher) findViewById(R.id.imageswitcher);imageSwitcher.setFactory(this);imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));}}
0 0
- Android控件详解之标签控件
- Android控件详解之进度控件
- Android控件详解之列表控件
- Android控件详解之网格控件
- Android控件详解之惰性装载控件
- Android控件详解之列表控件
- android控件详解之EditView
- Android控件详解之Textview
- Android控件详解之EditText
- Android控件详解之ImageView
- Android控件之菜单详解
- VC++标签控件之图像标签控件
- QT控件之标签
- libgbx 控件之标签
- Android 标签控件
- Android 标签控件
- Android 标签控件
- Android 标签控件
- Caffe Layer结构
- android kl文件
- Linux操作系统-标准IO库(3)
- MyEclipse10 安装
- 夏季“吃苦”应量力而行
- Android控件详解之标签控件
- jQuery ajax jsonp实现跨域请求
- 新手的linux之旅 五、安装IE浏览器
- 夏季吃芹菜叶拌花生米补钙 夏日吃芹菜叶更营养
- android之类似卫星菜单,来自定义ViewGroup。。。。。
- hash codeforces567C Geometric Progression
- 二分回顾
- 夏季养生要以“清”为贵
- Linux操作系统-标准IO库(4)