【Android 界面效果5】Android中style和theme巧用:Android应用程序启动时背景画面的切换
2013-05-12 23:47
621 查看
最近,一直在研究FM收音机源码,通过一星期的学习,基本上弄懂了源码的调用关系以及布局文件的显示,整体上给我的感觉是它的布局方式以及各个类之间的调用相当细致,只你能慢慢的消化了。苦恼的是还有很多底层的知识没有涉及到,目前也只是一步步的研究,希望能早日研究透彻。
学习的时候,发现了FM收音机的启动运行背景画面的切换,感觉很有意思,于是一步步的观察,终于给摸透了。在此总结一下:背景的特效切换技术采用的Activity的Theme属性 ; 然后,在启动成功后调用自定义的contentView(view)来显示我们的图片。 FM收音机特效如下:
初始启动后,界面显示为(应用了theme属性) 启动成功后,界面布局如下:
![](http://www.linuxidc.com/upload/2012_02/120202103185531.gif)
![](http://www.linuxidc.com/upload/2012_02/120202103185532.gif)
接下来,展开我们的旅行,真的挺简单的,轻装出行吧。
1 、 在values文件新建styles.xml文件,添加一个属性节点:
[java]
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<!-- style name以及它所继承的系统Theme主题 -->
<style name="Theme.MainActivity" parent="Android:Theme">
<!-- 是否允许有标题栏 -->
<item name="android:windowNoTitle">true</item>
<!-- 提示背景图片 -->
<item name="android:windowBackground">@drawable/bg_theme</item>
<item name="android:windowContentOverlay">@null</item>
<!-- 是否允许背景灰暗 -->
<item name="android:backgroundDimEnabled">false</item>
</style>
<!-- dialog样式的Activity -->
<style name="Theme.FloatActivity" parent="android:style/Theme.Dialog" >
<item name="android:windowBackground" >@drawable/bg_car</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
</resources>
2、在AndroidManifest文件下应用我们之前创建的theme/style
[java]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.feixun.cn" android:versionCode="1" android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity" android:label="@string/app_name"
android:theme="@style/Theme.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".TestActivityCallBack">
</activity>
<activity android:name=".TestActivityCallBack_2" android:theme="@style/Theme.MainActivity"></activity>
</application>
</manifest>
下面,以一个程序来验证我们的特效,程序启动时显示的是我们自定义属性中"Theme.MainActivity"
中的bg_theme图片,进入程序后,显示的的是我们自定义布局中的bg_car图片,是不是看起来很炫。为了延长特效时间,我们可以利用handler来延长特效时间。 程序如下:
[java]
<pre class="java" name="code">
[java]
importandroid.app.Activity;
import android.os.Bundle;
importandroid.os.Handler;
importandroid.os.Message;
importandroid.widget.LinearLayout;
public class MainActivity extends Activity {
private static int WAIT_FOR = 1;
/** Called whenthe activity is first created. */
@Override
public void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
// 利用handler来使主线程睡眠一段时间
handler.sendEmptyMessage(WAIT_FOR);
setContentView(R.layout.main);
}
private Handler handler = new Handler() {
public voidhandleMessage(Message msg) {
if (msg.what == WAIT_FOR) {
try {
//主线程睡眠一段时间
Thread.sleep(5000);
}
catch(InterruptedException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
}
}
};
}
看起来是不是很潮,呵呵,感觉加在你的应用程序吧。。 咱可是潮人。
代码下载地址:
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是www.linuxidc.com
具体下载目录在 /2012年资料/2月/2日/Android中style和theme巧用Android应用程序启动时背景画面的切换/
学习的时候,发现了FM收音机的启动运行背景画面的切换,感觉很有意思,于是一步步的观察,终于给摸透了。在此总结一下:背景的特效切换技术采用的Activity的Theme属性 ; 然后,在启动成功后调用自定义的contentView(view)来显示我们的图片。 FM收音机特效如下:
初始启动后,界面显示为(应用了theme属性) 启动成功后,界面布局如下:
![](http://www.linuxidc.com/upload/2012_02/120202103185531.gif)
![](http://www.linuxidc.com/upload/2012_02/120202103185532.gif)
接下来,展开我们的旅行,真的挺简单的,轻装出行吧。
1 、 在values文件新建styles.xml文件,添加一个属性节点:
[java]
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<!-- style name以及它所继承的系统Theme主题 -->
<style name="Theme.MainActivity" parent="Android:Theme">
<!-- 是否允许有标题栏 -->
<item name="android:windowNoTitle">true</item>
<!-- 提示背景图片 -->
<item name="android:windowBackground">@drawable/bg_theme</item>
<item name="android:windowContentOverlay">@null</item>
<!-- 是否允许背景灰暗 -->
<item name="android:backgroundDimEnabled">false</item>
</style>
<!-- dialog样式的Activity -->
<style name="Theme.FloatActivity" parent="android:style/Theme.Dialog" >
<item name="android:windowBackground" >@drawable/bg_car</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
</resources>
2、在AndroidManifest文件下应用我们之前创建的theme/style
[java]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.feixun.cn" android:versionCode="1" android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity" android:label="@string/app_name"
android:theme="@style/Theme.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".TestActivityCallBack">
</activity>
<activity android:name=".TestActivityCallBack_2" android:theme="@style/Theme.MainActivity"></activity>
</application>
</manifest>
下面,以一个程序来验证我们的特效,程序启动时显示的是我们自定义属性中"Theme.MainActivity"
中的bg_theme图片,进入程序后,显示的的是我们自定义布局中的bg_car图片,是不是看起来很炫。为了延长特效时间,我们可以利用handler来延长特效时间。 程序如下:
[java]
<pre class="java" name="code">
[java]
importandroid.app.Activity;
import android.os.Bundle;
importandroid.os.Handler;
importandroid.os.Message;
importandroid.widget.LinearLayout;
public class MainActivity extends Activity {
private static int WAIT_FOR = 1;
/** Called whenthe activity is first created. */
@Override
public void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
// 利用handler来使主线程睡眠一段时间
handler.sendEmptyMessage(WAIT_FOR);
setContentView(R.layout.main);
}
private Handler handler = new Handler() {
public voidhandleMessage(Message msg) {
if (msg.what == WAIT_FOR) {
try {
//主线程睡眠一段时间
Thread.sleep(5000);
}
catch(InterruptedException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
}
}
};
}
看起来是不是很潮,呵呵,感觉加在你的应用程序吧。。 咱可是潮人。
代码下载地址:
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是www.linuxidc.com
具体下载目录在 /2012年资料/2月/2日/Android中style和theme巧用Android应用程序启动时背景画面的切换/
相关文章推荐
- 【Android 界面效果5】Android中style和theme巧用:Android应用程序启动时背景画面的切换
- Android中style和theme巧用:Android应用程序启动时背景画面的切换
- Android中style和theme巧用:Android应用程序启动时背景画面的切换
- Android中style和theme巧用:Android应用程序启动时背景画面的切换
- Android中style和theme巧用:Android应用程序启动时背景画面的切换
- Android中style和theme巧用:Android应用程序启动时背景画面的显示问题
- Android开发_app启动界面背景渐变效果
- 【Android 界面效果3】Android_UI_点击按钮切换背景效果实现
- Android上webview界面切换动画效果
- android实现应用程序只有在第一次启动时显示引导界面
- 【Android 界面效果4】android背景选择器selector用法汇总
- Android app引导页(背景图片切换加各个页面动画效果)
- android实现应用程序只有在第一次启动时显示引导界面 ,以后就不在显示
- Android上webview界面切换动画效果
- 【Android UI设计与开发】第05期:引导界面(五)实现应用程序只启动一次引导界面
- Android 避免APP启动闪黑屏的解决办法(Theme和Style)
- 谈谈自定义Android界面切换效果库…
- Android 避免APP启动闪黑屏的解决办法(Theme和Style)
- Android编程实现图片背景渐变切换与图层叠加效果
- Android_UI_点击按钮切换背景效果实现