简述Android 中样式文件使用步骤

简述Android 中样式文件使用步骤,第1张

在Eclipse中android程序项目目录结构下的res文件夹新建drawable文件夹,并在drawable文件夹下新建各类的xml样式文件,供layout文件夹下的xml布局文件引用,以满足对程序界面的需求开发。如图1和图2是drawable下xml样式文件的样式类型。

 

图1、drawable下xml样式文件的样式类型(一)

 

图2、drawable下xml样式文件的样式类型(二)

接下来我们要详细解析以下各类xml样式文件的作用及其使用方法,请点击目录查看相应解析。

2、animation-list

使用animation-list样式可以实现逐帧动画效果,例如WiFi网络信号的强弱表示或者语音聊天声音的强弱表示,分为增强和减弱两种逐帧动画效果。 

首先是放置图片素材,如图3所示。将其根据屏幕分辨率大小分别放一套图片到不同屏幕分辨率的drawable文件夹下,android系统会根据机器的屏幕分辨率到相应屏幕分辨率的drawable文件夹里面去找相应的图片素材,以兼容不同屏幕分辨率的安卓机器屏幕。

图3、iv1到iv4 

其次是信号增强即图片顺序播放的效果,在drawable下新建animation_list_sequence.xml样式文件。

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

根标签为animation-list;

其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画;

其中visible规定drawable的初始可见性,默认为flase;

其中variablePadding若为true则允许drawable的距离在当前选择状态下有所改变(If true, allows the drawable’s padding to change based on the current state that is selected.),默认为false;

根标签下,通过item标签对动画中的每一个图片进行声明;

android:duration 表示展示所用的该图片的时间长度,单位为毫秒;

--><animation-list  xmlns:android="http://schemas.android.com/apk/res/android"

android:oneshot="true"

android:visible="false"

android:variablePadding="false"

>

<item android:drawable="@drawable/iv1" android:duration="200"></item>

<item android:drawable="@drawable/iv2" android:duration="200"></item>

<item android:drawable="@drawable/iv3" android:duration="200"></item>

<item android:drawable="@drawable/iv4" android:duration="200"></item></animation-list>1234567891011121314151617181920

再者是信号增强即图片顺序播放的效果,在drawable下新建animation_list_reverse.xml样式文件。

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

根标签为animation-list;

其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画;

其中visible规定drawable的初始可见性,默认为flase;

其中variablePadding若为true则允许drawable的距离在当前选择状态下有所改变(If true, allows the drawable’s padding to change based on the current state that is selected.),默认为false;

根标签下,通过item标签对动画中的每一个图片进行声明;

android:duration 表示展示所用的该图片的时间长度,单位为毫秒;

--><animation-list  xmlns:android="http://schemas.android.com/apk/res/android"

android:oneshot="true"

android:visible="false"

android:variablePadding="false"

>

<item android:drawable="@drawable/iv4" android:duration="200"></item>

<item android:drawable="@drawable/iv3" android:duration="200"></item>

<item android:drawable="@drawable/iv2" android:duration="200"></item>

<item android:drawable="@drawable/iv1" android:duration="200"></item></animation-list>1234567891011121314151617181920

然后在layout文件夹下新建xml布局文件activity_animation_list.xml,引用上面写好的drawable文件夹下的xml样式文件。

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<ImageView        android:id="@+id/iv_animation_list"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:src="@drawable/animation_list_sequence" />

<Button        android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:onClick="sequence"

android:text="顺序显示" />

<Button        android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:onClick="stop"

android:text="停止动画" />

<Button        android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:onClick="reverse"

android:text="倒序显示" /></LinearLayout>12345678910111213141516171819202122232425262728293031

然后在src包下新建Activity的Java文件AnimationListActivity.java,用于演示 *** 作。

package com.zcz.drawablexmltestimport android.app.Activityimport android.graphics.drawable.AnimationDrawableimport android.os.Bundleimport android.view.Viewimport android.view.Windowimport android.widget.ImageViewpublic class AnimationListActivity extends Activity{

private ImageView mIv

private AnimationDrawable mAd

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

requestWindowFeature(Window.FEATURE_NO_TITLE)

setContentView(R.layout.activity_animation_list)

mIv = (ImageView) findViewById(R.id.iv_animation_list)

}  

public void sequence(View view){

mIv.setImageResource(R.drawable.animation_list_sequence)

mAd = (AnimationDrawable) mIv.getDrawable()

mAd.start()

}    public void stop(View view){

mAd = (AnimationDrawable) mIv.getDrawable()

mAd.stop()

}    public void reverse(View view){

mIv.setImageResource(R.drawable.animation_list_reverse)

mAd = (AnimationDrawable) mIv.getDrawable()

mAd.start()

}

}

application标签中的@style/AppTheme引用自哪个文件夹中的styles.xml,这是根据运行此程序的手机系统来决定的,如果手机系统的API版本是11以上就是v11/styles.xml,API版本是14以上就是v14/styles.xml,以此类推。我们可以通过修改AppBaseTheme的父主题来实现我们需要的样式,此文章主要就是来讨论这个主题如何修改。

使用android系统中自带的主题要加上"android:",如:android:Theme.Black

使用v7兼容包中的主题不需要前缀,如:Theme.AppCompat

系统自带主题:

API 1:

android:Theme 根主题

android:Theme.Black 背景黑色

android:Theme.Light 背景白色

android:Theme.Wallpaper 以桌面墙纸为背景

android:Theme.Translucent 透明背景

android:Theme.Panel 平板风格

android:Theme.Dialog 对话框风格

API 11:

android:Theme.Holo Holo根主题

android:Theme.Holo.Black Holo黑主题

android:Theme.Holo.Light Holo白主题

API 14:

android:Theme.DeviceDefault 设备默认根主题

android:Theme.DeviceDefault.Black 设备默认黑主题

android:Theme.DeviceDefault.Light 设备默认白主题

API 21: (网上常说的 Android Material Design 就是要用这种主题)

android:Theme.Material Material根主题

android:Theme.Material.Light Material白主题

兼容包v7中带的主题:

Theme.AppCompat 兼容主题的根主题

Theme.AppCompat.Black 兼容主题的黑色主题

Theme.AppCompat.Light 兼容主题的白色主题

以下都是指“包含”,比如包含“Dialog”表示对话框风格

比如Theme.Dialog、Theme.Holo.Dialog、Theme.Material.Dialog、Theme.AppCompat.Dialog都是对话框风格

Black 黑色风格

Light 光明风格

Dark 黑暗风格

DayNight 白昼风格

Wallpaper 墙纸为背景

Translucent 透明背景

Panel 平板风格

Dialog 对话框风格

NoTitleBar 没有TitleBar

NoActionBar 没有ActionBar

Fullscreen 全屏风格

MinWidth 对话框或者ActionBar的宽度根据内容变化,而不是充满全屏

WhenLarge 对话框充满全屏

TranslucentDecor 半透明风格

NoDisplay 不显示,也就是隐藏了

WithActionBar 在旧版主题上显示ActionBar


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11659383.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存