引导页编写
来源:互联网 发布:红楼梦 脂评本 知乎 编辑:程序博客网 时间:2024/06/01 07:28
Android仿天天动听音乐播放器总结
首先这个Project是可以从网上下载到源代码,我也是看别人的源代码来学习,模仿着写出来的,一开始基本是照住写,后来才慢慢修改了部分地方,还有就是有一部分功能没实现出来的(例如歌词下载,歌词显示那部分) PS:提供我找到的原作者的博客吧,他有写一点点Project的解释,但是不全:链接
引导页面的实现
先讲讲实现的思路吧:一个Activity上的布局是一个FrameLayout,这个Layout上面是空白,一开始打开APP的时候就会见到这个空白的界面,然后生成一个全屏的Dialog,Dialog带着这个图片出现,遮住底下的Activity,然后在这个时候用Fragment把Activity的FrameLayout的内容换掉,搞好一切准备事项就把Dialog dismiss掉就可以了。
public void show(final int ID_img,final int exit_way) { Runnable runnable=new Runnable() { @Override public void run() { // TODO Auto-generated method stub LinearLayout root=new LinearLayout(activity); root.setOrientation(LinearLayout.VERTICAL); root.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)); root.setBackgroundResource(ID_img); dialog=new Dialog(activity, android.R.style.Theme_Translucent_NoTitleBar); if((activity.getWindow().getAttributes().flags & WindowManager.LayoutParams.FLAG_FULLSCREEN)==WindowManager.LayoutParams.FLAG_FULLSCREEN) { dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); } switch(exit_way)//设置dismiss时Dialog的动画 { case FADE_OUT: dialog.getWindow().setWindowAnimations(R.style.fade_out);break; case SLIDE_LEFT: dialog.getWindow().setWindowAnimations(R.style.slide_left);break; case SLIDE_UP: dialog.getWindow().setWindowAnimations(R.style.slide_up);break; default: break; } dialog.setContentView(root); dialog.setCancelable(false);//取消BACK键的响应 dialog.show(); } }; activity.runOnUiThread(runnable); }
可以看得出引导页的show首先就是创一个root布局,然后把背景换成引导页图片,再创一个Dialog,检测下Activity是不是满屏的,满屏就把Dialog也设成满屏的,最后把Dialog的ContentView设置成root就显示出来就OK了。另外关于Dialog退出时的效果设置dialog.getWindow().setWindowAnimations(StyleID);
其中StyleID的写法: <!-- 引导页面用的Style -->
<style name="fade_out" parent="android:Animation" mce_bogus="1">
<item name="android:windowExitAnimation">@anim/anim_fade_out</item>
</style>
<style name="slide_left" parent="android:Animation" >
<item name="android:windowExitAnimation">@anim/anim_slide_left</item>
</style>
<style name="slide_up" parent="android:Animation">
<item name="android:windowExitAnimation">@anim/anim_slide_up</item>
</style>
还有那些Animation的res写法: <set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="1000" />
</set>
引导页的remove:
public void remove() { if(dialog!=null && dialog.isShowing()) { dialog.dismiss(); dialog=null; } }
最后在Activity里面的应用:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //开启引导页面 setContentView(R.layout.frame_main);//一开始的空白页面 splashScreen=new SplashScreen(this); splashScreen.show(R.drawable.image_splash_background, SplashScreen.FADE_OUT); //使用MainFragment代替主界面 mMainFragment=new MainFragment(); getFragmentManager().beginTransaction().replace(R.id.frame_main, mMainFragment).commit(); //注册Handler mhandler=new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub if(msg.what==1) { splashScreen.remove(); } } }; getData();//获取数据的结束之后利用handler发送msg.what==1的消息告诉handler把引导页dismiss掉 }
- 引导页编写
- IOS引导页的编写
- 101112编写引导程序
- 编写主引导扇区
- 操作系统编写之引导扇区
- 利用NASM编写引导程序
- 编写主引导扇区代码
- 引导页
- 引导页
- 引导页
- 引导页
- 引导页
- 引导页
- 引导页
- 引导页
- 引导页
- 引导页
- 引导页
- MS-SQL数据库开发—经典实例
- 问题分析探讨 --> 大约有700W数据的表,把当天的10W数据select导入新表,整个原来的表就锁死
- 关于R.layout或R.id下变量报错的解决方法
- iOS 自动布局1
- redis安装和安全
- 引导页编写
- 高效了解需要了解的linux命令
- java转入C#学习笔记-2
- 如何在C++中将filetime时间转化为字符串?
- IPsec 应用层和内核态通信方式
- XSHELL 绝佳配色方案, 保护你的眼睛
- 发现一块“智慧石”
- map去除某个特定的键值
- 【记录】STM32在ucOS串口的操作(Polling)