如何在 Android 应用程序中使用自定义主题

如题所述

  Android 应用程序中使用自定义主题的方法:

 1、新建一个项目 Lesson32_StyleAndTheme。

2、拷贝下面三张 Nine-Patch PNG图片到res/drawable目录下:

3、在按钮的同目录下建立一个文件btn_custom.xml,把上述3张图片整合成一个按钮背景文件,让三张图片成为不同状态下的按钮表现效果。具体写法如下:

<?xml version="1.0" encoding="utf-8"?>  

<selector xmlns:android="http://schemas.android.com/apk/res/android">  

        <item android:drawable="@drawable/btn_red" android:state_enabled="false">  

        <item android:drawable="@drawable/btn_orange" android:state_enabled="true" android:state_pressed="true">  

        <item android:drawable="@drawable/btn_orange" android:state_enabled="true" android:state_focused="true">  

        <item android:drawable="@drawable/btn_black" android:state_enabled="true">  

</item></item></item></item></selector>  

 4、在res/values目录下定义style.xml文件,内容如下:

<?xml version="1.0" encoding="utf-8"?>  

<resources>  

<style name="BasicButtonStyle" parent="@android:style/Widget.Button">  

                <item name="android:gravity">center_vertical|center_horizontal</item>  

                <item name="android:textColor">#ffffffff</item>  

                <item name="android:shadowColor">#ff000000</item>  

                <item name="android:shadowDx">0</item>  

                <item name="android:shadowDy">-1</item>  

                <item name="android:shadowRadius">0.2</item>  

                <item name="android:textSize">16dip</item>  

                <item name="android:textStyle">bold</item>  

                <item name="android:background">@drawable/btn_custom</item>  

                <item name="android:focusable">true</item>  

                <item name="android:clickable">true</item>  

        </style>  

<style name="BigTextStyle">  

    <item name="android:layout_margin">5dp</item>  

                <item name="android:textColor">#ff9900</item>  

                <item name="android:textSize">25sp</item>  

  </style>  

<style name="BasicButtonStyle.BigTextStyle">  

    <item name="android:textSize">25sp</item>  

  </style>  

</resources>  

5、在res/layout/目录下定义main.xml文件,内容如下:

<?xml version="1.0" encoding="utf-8"?>  

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical">  

        <textview android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="张信哲的热搜歌曲">  

        <button android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="爱如潮水 " android:id="@+id/Button01">  

  </button>  

</textview></linearlayout>  

6、在res/values目录下定义theme.xml文件:

<?xml version="1.0" encoding="utf-8"?>  

<resources>           

<style name="BasicButtonTheme">  

                <item name="android:buttonStyle">@style/basicbuttonstyle</item>  

                <item name="android:windowBackground">@android:color/transparent</item>     

                <item name="android:windowIsTranslucent">true</item>     

  </style>  

</resources>  

7、在AndroidManifest.xml中给整个应用程序设置主题:

<?xml version="1.0" encoding="utf-8"?>  

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="android.basic.lesson32" android:versioncode="1" android:versionname="1.0">  

    <application android:theme="@style/BasicButtonTheme" android:label="@string/app_name" android:icon="@drawable/icon">  

        <activity android:label="@string/app_name" android:name=".MainStyleAndTheme">  

            <intent -filter="">  

                <action android:name="android.intent.action.MAIN">  

                <category android:name="android.intent.category.LAUNCHER">  

            </category></action></intent>  

        </activity>  

    </application>  

    <uses -sdk="" android:minsdkversion="8">  

</uses></manifest>   

 8、程序的最终运行效果图如下:

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-11-10
 在Android中,定义外观最简单的方式是直接设置属性在视图对象上。由于要对整个应用程序设置样式,这种方法就显得不是很方便了。因此,我们可以创建
  样式来绑定视图属性。但要注意的是,样式只能设置在xml里。这意味着,我们在创建/加载视图的时候,只能一次设置一个样式。下面是如何在res
  /values/styles.xml文件中给TextView设置属性的示例。

  <style name="CustomText" parent="<a href="http" target="_blank" rel="nofollow">@android</a> :style/TextAppearance.Medium">
  <item name="android:textSize">20sp</item> <item name="android:textColor">#008</item>
  </style>

  我们引用@style/CustomText样式应用在我们的layout.xml文件中。该样式引用了一个父样式
  @android:style/TextAppearance.Medium。由于开始样式引自android: 命名空间,那么我们这个样式默认也随android平台。

  创建主题绑定样式

  假设我们要改变我们所有TextView的文字大小和颜色,并且不需要明确设置每一个TextView。这是一个非常常见的情况,幸运的
  是,Android提供了一个非常强大的主题机制。从本质上讲,主题就是样式资源本身,使用“key”指向具体的样式。一个视图对象基于这个key可以查
  看到具体的样式。下面是一个简单的例子,在res/values/themes.xml文件:

  <style name="Theme.MyApp" parent="<a href="http" target="_blank" rel="nofollow">@android</a> :style/Theme.Holo">
  <item name="android:textAppearance">@style/CustomText</item>
  </style>

  如上所述,主题是样式资源本身,所以我们声明一个Theme.App继承自Android平台提供的holo主题。我们将我们的CustomText样式
  指定到android:textAppearance属性。属性就是一个预定义的“变量”,它可以被其他资源元素引用。事实上,它也可以创建自定义属性在
  res/values/attr.xml文件。

  现在有趣的事情来了。我们的主题Theme.MyApp不仅可以通过AndroidManifest.xml的设置应用到Activity上,它也可以在
  运行时在代码中设置。你将不得不重新启动当前Activity(或使用ContextWrapper应用UI的主题部分),但它使主题更加动态。本回答被网友采纳
第2个回答  2016-11-10
这大品牌,说不定也会

如何在 Android 应用程序中使用自定义主题
7、在AndroidManifest.xml中给整个应用程序设置主题:<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http:\/\/schemas.android.com\/apk\/res\/android" package="android.basic.lesson32" android:versioncode="1" android:versionname="1.0"> <application android:theme="@style\/...

如何在 Android 应用程序中使用自定义主题
指定到android:textAppearance属性。属性就是一个预定义的“变量”,它可以被其他资源元素引用。事实上,它也可以创建自定义属性在 res\/values\/attr.xml文件。现在有趣的事情来了。我们的主题Theme.MyApp不仅可以通过AndroidManifest.xml的设置应用到Activity上,它也可以在 运行时在代码中设置。你将不得不...

如何在 Android 应用程序中使用自定义主题
在AndroidManifest.xml的Application或Activity标签下加上android:theme="@android:style\/xxxx"

安卓手机如何自定义设置动态壁纸
1、下载安卓壁纸并安装 2、打开应用软件。3、在发现里面点击“动态壁纸”。4、查看所有壁纸,找到一个喜欢的 5、点开壁纸,下方有一个设为锁屏和设为壁纸,选择一项 6、选择好之后会载入选好的壁纸,之后选择应用就可以了。

如何修改应用程序皮肤
一些应用程序本身也提供了自定义主题的选项,例如Flipboard、Facebook、Twitter等。如果你使用的是Android系统,可以尝试使用“Themer”等应用程序。它们提供了超过400种设计,其中大多数是针对特定应用程序或服务的主题。你可以按需选取并进行自定义。总结我们可以看出,修改应用程序皮肤需要一些专业知识和技能,但...

如何将安卓手机顶部栏左上方写自定义东西
第一种:也一般入门的时候经常使用的一种方法 requestWindowFeature(Window.FEATURE_NO_TITLE);\/\/去掉标题栏 注意这句一定要写在setContentView()方法的前面,不然会报错的 第二种:在AndroidManifest.xml文件中定义 <application android:icon="@drawable\/icon" android:label="@string\/app_name" android...

如何修改Android App的样式风格
android中可以自定义主题和风格。风格,也就是style,我们可以将一些统一的属性拿出来,比方说,长,宽,字体大小,字体颜色等等。可以在res\/values目录下新建一个styles.xml的文件,在这个文件里面有resource根节点,在根节点里面添加item项,item项的名字就是属性的名字,item项的值就是属性的值,如下...

如何将应用程序添加到安卓手机主屏幕
您可以在 iPhone 上将网站添加为应用程序,这里我们将向您展示如何在 Android 上执行此操作。在 Android 手机或平板电脑上打开Google Chrome 。导航到您要添加的网站,然后点击右上角的三点菜单按钮。从出现的菜单中点击添加到主屏幕。输入快捷方式的描述性名称,然后点击“添加”。当屏幕底部出现验证消息时...

怎么更改安卓系统手机程序桌面图标
可以按照如下方式操作:1、打开apk编辑器。2、点击第一个选择项。3、找到想要改的软件(以百度网盘为例子)。4、选择第三个常用编辑。5、我们可以改图标,改名字。6、找到相要改为的图标。7、期间我们要把原来的百度网盘卸载掉(会冲突)。8、正在保存。9、ok点击安装,大功告成。

android怎样优雅的动态改变整个application的theme
选择一种模式作为程序的默认theme,注意:由于我是在layout布局文件中定义的view的样式,因此,为了保证theme切换时不会出现找不到资源的问题,因此需要在每一种用到的自定义theme中,都加上item。这里的item如text_cl和view的textColor属性的format是一致的。Android manifest文件:<?xml version="1.0" ...

相似回答