`
mmdev
  • 浏览: 12926126 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Android界面-标题和按钮定制-drawable

 
阅读更多

这篇文章记录了怎么使用drawable中的StateList来实现自定义标题 以及 按钮,先看一下效果图吧:


先介绍一下drawable中的stateList

先看代码:

send_button.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/btn_pressed" />
    <item android:state_focused="true" android:drawable="@drawable/btn_pressed" />
    <item android:drawable="@drawable/btn_normal" />
</selector>

这段代码描述的是“发送”按钮,默认情况下,呈现的是btn_normal;当press或者focus的时候,为btn_pressed。两图片如下:


而stateList是一种drawable,所以上面的send_button.xml其实在android应用程序看来就是类似一张图片,不过这张图片是有状态的。 作为按钮,当点击这个控件时,它会提供一个友好的相应。

关于stateList,请参考官方文档:http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

Tips: 定义中的状态的匹配是按照顺序进行的,匹配到第一个成功就不往下匹配了(这里我也不太清楚具体的应用场景,反正就是提醒,定义状态的顺序是比较重要的,也可以把这里的状态类比有着break的switch语句块)。状态的顺序很重要,文章有个例子,参考那个例子就可以了,而对于按钮,运用本文中的例子也可以了。


使用drawable

跟使用图片是一样的,直接上代码:

<Button
        android:id="@+id/sendbutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       ...
        android:background="@drawable/send_button"
        android:text="发    送" />

本文中的例子还有一处使用了stateList,就是标题栏中跳转的导航按钮。

代码如下:

right_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/right_selected" android:state_pressed="true"/>
    <item android:drawable="@drawable/right_normal"/>
</selector>

<ImageButton
         android:id="@+id/about_us_back_button"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         ...
         android:background="@drawable/right_selector"
         android:src="@drawable/arrow_left" />


设置无标题

默认情况下,android应用是有标题的,而我们这里定义了标题,就不需要原来的标题了,这里要使用@android:style/Theme.NoTitleBar这个style。

我是在activity中设置的,具体看代码:

AndroidManifest.xml

<activity android:name=".MainActivity"
          android:label="@string/title_activity_main"
          android:theme="@android:style/Theme.NoTitleBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

集成layout文件

我喜欢把功能集中的一些元素放到单一的文件中,然后使用include引用。
比如,这个应用中,我把title和conent分成了两个文件:head.xml和content.xml
然后在activity_main.xml中引用这两个文件,具体看代码:
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:orientation="vertical"
    android:background="@color/white">

    <include layout="@layout/head" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

    <include
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="30sp"
        layout="@layout/content" />

</LinearLayout>


源代码位置:http://download.csdn.net/download/stalendp/4663132

分享到:
评论

相关推荐

    实验1--Android基础入门与Android-UI开发应用(1).doc

    实验1 Android基础入门与Android UI开发应用 1. 实验目的 掌握相对布局、线性布局的使用;掌握样式的使用;掌握如何对程序进行国际化。 2. 实验内容 1. 课本第2章讲解了Android UI开发,其中包括了相对布局、线性...

    新版Android开发教程.rar

    的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...

    Android 实现多选按钮对话框.rar

    Android 实现多选按钮对话框,在这个例子中,添加到多选下拉框中的内容,事先定义成了数组:String[] items=null;//选项数组,通过重写onCreate方法,从XML文件读取下拉框内容到字符串数组中,为按钮添加监听器,并...

    Android 创建app快捷方式到主界面.rar

    在android手机中创建应用APP的快捷方式,在本实例中,创建快捷方式是从用户单击了按钮开始,当然这只是演示,在实际使用中,可能由APP安装程序直接创建快捷方式,实现方法与以下代码相似:  //按下了按钮时  ...

    安卓开发--Android连连看游戏源码(附赠参考实验报告).zip

    实现游戏主界面的显示,为游戏界面的按钮,GameView组建的事件提供监听器。 8. yinhe.llk.activity.StartActivity类: 游戏的开始界面,实现开始界面的显示及其中及对其中进度条进度的监听。当进度条结束后自动...

    Android Drawable及其相关类的使用

    一个让人赏心悦目的界面对软件来说非常重要,因此图形图像资源也显得非常重要。本讲就要谈一谈Android中处理图形图像的最重要的一个类Drawable。Drawable就是一个可以画的对象的抽象(有点别扭,你凑合看吧),下面...

    Android 中API之Drawable资源详解及简单实例

    Android 中API之Drawable资源 1、最常用的StateListDrawable  说StateListDrawable,很多Android猿可能感到不太熟悉,不过如果说selector选择器,肯定都会恍然大悟,不错,这两个东西就是同一个~~ 它的用途之广,...

    Android UI组件实例集合

    是一个工具包用来帮助设计和开发 Android 用户界面,包含三个单独的工具:Android Asset Studio用户界面原型模具,Android 设计预览,时常需要重复确认程序版面设计状况的 Android App 开发者,应该会爱上这个轻量级...

    Android 简单换肤实例.rar

    Android 简单换肤实例,单击Set按钮,可将APP的主界面变换成其它的风格,本例子中实现的比较简单,只是换了两张图片背景,有兴趣的可参考代码:单击换肤按钮后,会执行以下代码:  btnSet.setOnClickListener(new ...

    SuperButton-这真的可能是最好用的按钮了.zip

    这本来没有什么问题,也比让UI妹纸切图高级了很多,但是随着开发的进行你会发现,UI妹纸的想法很多,不同的界面有各种不同圆角和不同背景颜色的按钮,这个时候你需要把上面的三个步骤再进行N次。最后你会发现你的...

    Android插件

    它导入Android图标与Material图标的Drawable ,批量导入Drawable ,多源导入Drawable(即导入某张图片各种dpi对应的图片) 14.SelectorChapek for Android 通过资源文件命名自动生成Selector文件。 15....

    Google Android SDK开发范例大全 源码

    谷歌 Android 讲的很清楚,看得很模糊,这本书让你可以对Adnroid 看的很全面。抢占Android 市场,可能就在某个行业的将来抢占了一定的地位。 * 国内第一本全面介绍Android SDK的简体中文图书,目前为止最详细完整的...

    Android 模拟的单选列表对话框.rar

    Android 模拟的单选列表对话框,这个好像不是使用Android中固有的radio来实现的,是采用Android其它内置方法模拟出来的效果,效果与Radio组件一样,而且界面同样美观简洁,本实例只是默认的风格,有兴趣可参考以下...

    android开发音乐盒的实验报告.doc

    2、界面设计 第一个界面总体分为上、下两层,第一层主要分三个部分,把播放按钮和暂停按钮重 叠的放在第一部分,把停止按钮放在第二部分,第三部分又划分成上、下两个部分,上 面放歌曲的名称,下面放歌曲的演唱者...

    Android 演示开关灯效果.rar

    Android 演示开关灯效果,单击按钮后开灯,再次单击则关灯,很逼真的演示了开关灯特效,开灯后灯光点亮的效果很逼真哦。主要是添加按钮事件,改变图片的状态,设置程序状态的方法:  public void setBulbState...

    疯狂Android讲义源码

     1.1 Android的发展和历史 2  1.1.1 Android的发展和简介 2  1.1.2 Android平台架构及特性 3  1.2 搭建Android开发环境 5  1.2.1 下载和安装Android SDK 5  1.2.2 安装Eclipse和ADT插件 7  1.3 Android常用...

    Android开发软键盘遮挡登陆按钮的完美解决方案

    当填写这些信息的时候,软键盘会遮挡登陆按钮,这使得用户体验较差,所以今天就来解决这个问题 1:登陆布局界面如下 &lt;?xml version=1.0 encoding=utf-8?...android:background=@drawable/login_

    8941-Android智能手机编程.docx

    单击Eclipse工具栏上的图标,打开创建虚拟Android设备的界面,设置各项属性,并填写必填信息后,单击"OK"按钮,就可以在AVD管理器中看到新创建的设备。具体如下: (1)打开安卓虚拟设备管理器,即 AVD Manager。...

Global site tag (gtag.js) - Google Analytics