Android 创建标签式的版面设置 (笔记)

  利用TabHost创建标签式的版面设置,进行不同标签的切换,显示不同的背景图片。效果如下所示:

        

     1、添加6张图片资源(直接拖入drawable文件夹),分别为gray.png, white.png, gray2.png, white2.png, gray3.png, white3.png代表的是标签默认状态和按下以后的状态。

     2、在 drawable文件夹中新建一般的XML文件,picture.xml, picture2.xml, picture3.xml分别填写以下代码

     picture.xml

<?xml version="1.0" encoding="UTF-8"?>
<selector  xmlns:android="http://schemas.android.com/apk/res/android">
     <item
        android:state_selected="true"
        android:drawable="@drawable/white"/>
    <item
        android:drawable="@drawable/gray"/>
</selector>

     picture2.xml

<?xml version="1.0" encoding="UTF-8"?>
<selector  xmlns:android="http://schemas.android.com/apk/res/android">
     <item
        android:state_selected="true"
        android:drawable="@drawable/white2"/>
    <item
        android:drawable="@drawable/gray2"/>
</selector>

     picture3.xml

<?xml version="1.0" encoding="UTF-8"?>
<selector  xmlns:android="http://schemas.android.com/apk/res/android">
     <item
        android:state_selected="true"
        android:drawable="@drawable/white3"/>
    <item
        android:drawable="@drawable/gray3"/>
</selector>

3、在activity_main.xml中添加控件,并且在MainActivity.java调用

     activity_main.xml

     

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.test2.MainActivity"
    tools:ignore="MergeRootFrame" >

    <TextView
        android:id="@+id/view1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />

    <TextView
        android:id="@+id/view2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />

    <TextView
        android:id="@+id/view3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
</FrameLayout>

MainActivity.xml

   

package com.example.test3;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
import android.os.Build;

public class MainActivity extends TabActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        TabHost tabHost = getTabHost();
        LayoutInflater.from(this).inflate(R.layout.activity_main, //加载页面
        		tabHost.getTabContentView(), true);
        tabHost.addTab(tabHost.newTabSpec("tab1")
                .setIndicator("tab1", getResources().getDrawable(R.drawable.picture))
                .setContent(R.id.view1));
        tabHost.addTab(tabHost.newTabSpec("tab2")
                .setIndicator("tab2", getResources().getDrawable(R.drawable.picture2))
                .setContent(R.id.view2));
        tabHost.addTab(tabHost.newTabSpec("tab3")
                .setIndicator("tab3", getResources().getDrawable(R.drawable.picture3))
                .setContent(R.id.view3));   

        tabHost.setCurrentTab(1);

        }
}

4、测试以后出现这样的情况:只显示字不显示图标,则在AndroidManifest.xml进行以下更改,最终看到图标。

     

    源代码地址:  http://download.csdn.net/detail/u010499449/8311291

     转载请注明出处:http://blog.csdn.net/u010499449/article/details/42213941

时间: 2024-07-31 13:28:44

Android 创建标签式的版面设置 (笔记)的相关文章

iOS开发笔记13:顶部标签式导航栏及下拉分类菜单

当内容及分类较多时,往往采用顶部标签式导航栏,例如网易新闻客户端的顶部分类导航,最近刚好有这样的应用场景,参考网络上一些demo,实现了这种导航效果,记录一些要点. 效果图(由于视频转GIF掉帧,滑动和下拉动画显得比较生硬,刚发现quickTime可以直接录制手机视频,推荐一下,很方便) 1.顶部标签式导航栏 (1)实现思路 其实就是在上下两个UIScrollView上做文章,实现联动选择切换的效果. ①顶部标签导航栏topCategoryListScrollView加载显示分类数据,下方con

用Axure RP7创建响应式原型教程

自从几年前响应式技术开始应用时,创建响应式原型就成为了很多人苦恼的事情.响应式设计用一种非常优雅的方式处理为多种设备类型使用HTML和CSS编码的应用,但是提供给UX专业人士的原型工具却没有具备同样品质的可以测试或者验证的功能.不过随着最新Axure RP 7中的适应性视图功能发布后,这个情况开始改变了. Axure RP 7的适应性视图 Axure RP 7的适应性视图让不借助编码创建响应式原型成为了可能.你可以利用这个功能在Axure RP里创建一个多视图的页面,这个视图能在给定屏幕尺寸的设

《探索式软件测试》读书笔记(上)

<探索式软件测试>读书笔记(上) 2015-05-12 一.局部探索式测试 1.如何测试用户输入  1)合法输入和非法输入    输入筛选器   输入检查   异常处理代码  2)常规输入还是非常规输入  3)默认输入或用户提供的输入  4)使用输出来指导输入选择 2.如何测试软件状态 3.代码路径 4.用户数据 5.运行环境二.全局探索性测试 分类 方法 商业区 指南测试法 卖点测试法  地标测试法  极限测试法  快递测试法  深夜测试法  遍历测试法  历史区 恶邻测试法  博物馆测试法

Android Activity标签属性

Android Activity标签属性 Activity 是 Android 系统四大应用组件之一,用户可与 Activity 提供的屏幕进行交互,以执行拨打电话.拍摄照片.发送电子邮件等操作开发者必须在清单文件中声明要使用的 Activity,这样系统才能访问它.声明方式是在 < application > 元素中添加 < activity > 子元素 1 <application 2 android:allowBackup="true" 3 andr

android在代码中四种设置控件背景颜色的方法(包括RGB)

转载请注明出处: http://blog.csdn.net/fth826595345/article/details/9208771  TextView tText=(TextView) findViewById(R.id.textv_name); //第1种: tText.setTextColor(android.graphics.Color.RED);//系统自带的颜色类 // 第2种: tText.setTextColor(0xffff00ff);//0xffff00ff是int类型的数据

Android 创建Library Project(库项目)与引用操作

由于在开发过程,为了实现未曾了解的某种效果与特定功能,而求助于网上优秀的开源项目,在使用过程中发现引用开源的Library Project(库项目),的确可以解决很多问题,而且也给出了一种思路,好的软件公司也需要有自己的Library Project(库项目),这样不必要进行重复开发工作,这只是自己的想法.下面将自己的心得或体会记录如下,以下是自己的编写风格. [转载使用,请注明出处:http://blog.csdn.net/mahoking/article/details/36405219]

Android创建新项目及开发

创建一个新项目是很简单的,只要你安装了Eclipse插件,并且你的Eclipse软件版本在3.2或3.3,你就可以开始开发了. 首先, 看一下要创建"Hello, World"程序从高级层面上有哪些步骤: 1, 通过 File -> New -> Project 菜单,建立新项目"Android Project" 2, 填写新项目各种参数. 3, 编辑自动生成的代码模板. 仅此而已,我们通过下面的详细说明来完成每个步骤. 1.创建一个新的Android项

【转】android创建Popwindow弹出菜单的两种方式

方法一的Activity [java] view plaincopy package com.app.test02; import android.app.Activity; import android.os.Bundle; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import

cocos2dx中创建标签CCLabel的三种方法及特点

创建标签的三种方式:1.CCLabelTTF     (True Type Font,又叫本地字体)这是最简单,也是最常用的方式,不依赖于资源文件,也不依赖于某个系统,所指定的字体如果系统没有,则会提供默认的字体,使用相当方便创建方式:CCLabelTTF *ttf=CCLabelTTF::create("GAME","Courier New",20);//第一个参数表示要显示的标签内容,第二个参数表示要使用的字体,第三个参数表示字体的大小如果要使用的字体,系统没有