Andriod 如何写欢迎界面
来源:互联网 发布:四川软件行业协会 编辑:程序博客网 时间:2024/05/24 05:10
许多应用都有一个欢迎界面,一般是图片或者动画,下面来说一下如何制作一个最简单的用图片作为欢迎键面的列子:
我们要实现以下几个效果:
1.启动时自动全屏展示,中间无卡顿现象
2.停留几秒后跳到其他主页面
3.按返回键时不能再到欢迎页面
现在的人都不喜欢说真话,在网上查了很多,要全屏展示一个布局,大部分给的答案都是这样的:
public class LuancherActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //去除title requestWindowFeature(Window.FEATURE_NO_TITLE); //去掉Activity上面的状态栏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_luancher); }
然后你会惊奇的发现,在加载布局时它会一卡,就是启动时是有状态栏和标题栏的,然后瞬间才全屏,这样显然不是我们想要的,那么我们如何来做呢?现在你估计会想到AndroidMenifest.xml文件,没错就是它,我们一定要在创建这个Activity时就要指定它是全屏的,在AndroidMenifest.xml中,在activity内添加一个主题,如下:
<activity android:name=".LuancherActivity" android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
这样,我们第一个效果就实现了
第二个效果相信大家都会,但是切记不要这样干:
public class LuancherActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_luancher); try { Thread.sleep(3000); Intent intent =new Intent(LuancherActivity.this,LoginActivity.class); startActivity(intent); } catch (InterruptedException e) { e.printStackTrace(); } }
许多新手就是这样做的,在加载布局后让线程休眠一会再跳转,然后你又会发现欢迎界面是空白的,然后过一会之后跳到了其它界面,正确的做法如下:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_luancher); new Handler().postDelayed(new Runnable() { public void run() { Intent intent = new Intent(LuancherActivity.this,LoginActivity.class); startActivity(intent); } }, 3000); }
这个相信大家都知道,只是对于新手要注意一下细节
第三个就是处理返回的问题,作为一个新手,有时候我也很困惑,比如我到了LoginActivity界面,我想按返回键直接退出,不要有回到欢迎界面,网上一大堆方法:
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ finish(); } return true; }
或者:
@Override public void onBackPressed() { finish();// super.onBackPressed(); }
然而每次尝试,都会返回欢迎界面,试了很多次,发现漏了一个细节:
就是在LuancherActivity中,在启动后要把他finish()掉,这很重要:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_luancher); new Handler().postDelayed(new Runnable() { public void run() { Intent intent = new Intent(LuancherActivity.this,LoginActivity.class); startActivity(intent); finish(); } }, 3000); }
以上就是我的简单总结,没什么技术含量,都是一些细节问题,希望对新手们有用
0 0
- Andriod 如何写欢迎界面
- 如何关闭win7欢迎界面
- 用Java Swing 写欢迎界面
- Android写一个简单的欢迎界面
- Andriod耗时操作的处理(音乐播放器欢迎界面)
- Android笔记—如何制作欢迎界面
- 如何使用图片制作全屏欢迎界面
- 如何配置端口、应用、欢迎界面
- Delphi 写的欢迎界面 类似 WinRAR 按钮
- 如何正确地写好一个界面
- 多方位解析:如何写好一个界面
- 如何正确地写好一个iOS界面
- 如何正确地写好一个界面
- 欢迎界面
- 欢迎界面
- 欢迎界面
- 欢迎界面
- 欢迎界面
- laravel 实现不同域名cookie共享 一个域名下登录 另一个域名下保持登录状态
- 在caffe中固定某些网络参数,只训练某些层
- Linux 命令
- 如何查看linux系统中空闲内存/物理内存使用/剩余内存
- CALayer
- Andriod 如何写欢迎界面
- Android Studio精彩案例(七)《ToolBar使用详解<一>》
- xcode更新
- 关于C++类成员访问级别(public,protected,private)与继承的形式(public, private)
- java对AD域的密码修改!!证书导入!!!
- phpstorm 激活
- Android本地存储之SharedPreferences源码解析
- java方法参数和返回值
- 打包人脸识别等出现的问题