6、欢迎界面的几种实现方法

     在进入应用的时候,往往我们首先看到的是这个应用的logo或者是应用制作公司的logo,这个便是一种欢迎界面,一个欢迎界面的好坏也会应用用户对这款应用的体验,本节我们介绍几种欢迎界面的实现方法。

一、使用动画的方式
     这种方式是使用动画的监听实现的,在动画结束的时候跳转Activity,并关闭欢迎界面Activity,这种方法不需要线程,实现起来也比较简单。
     首先我们先吧欢迎界面(activity_welcome.xml)的布局写出来,很简单,就是一个logo,借用下QQ。
<?xml version= "1.0" encoding ="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width= "match_parent"
    android:layout_height= "match_parent"
    android:gravity= "center"
    android:background= "#fff"
    android:orientation= "vertical" > 
    <ImageView
        android:id="@+id/welcome_image"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:src="@drawable/icon_qq" />
</LinearLayout>


我们新建一个Activity,用于实现欢迎界面效果,
public class WelcomeActivity extends Activity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
          setContentView(R.layout. activity_welcome);
           //在欢迎界面里放了个 logo
          ImageView myImageLogo = (ImageView)findViewById(R.id.welcome_image );
           //这里使用渐变动画,透明度从0.1渐变到1.0
          AlphaAnimation alphaAnim = new AlphaAnimation(0.1f,1.0f);
           //设置动画的时间,这也是该欢迎界面的持续时间,以毫秒为单位
          alphaAnim.setDuration(5000);
           //设置动画监听器
          alphaAnim.setAnimationListener( new AnimationListener() {
              
               @Override
               public void onAnimationStart(Animation animation) {
                    //动画开始时执行
              }
              
               @Override
               public void onAnimationRepeat(Animation animation) {
                   
              }
              
               @Override
               public void onAnimationEnd(Animation animation) {
                    //动画结束时执行
                   Intent  intent = new Intent(WelcomeActivity.this ,MainActivity.class);
                   startActivity(intent);
              }
          });
           //将动画与ImageView绑定,开始动画
          myImageLogo.setAnimation(alphaAnim);
     }
     
     //往往欢迎界面需要屏蔽返回键
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
           // TODO Auto-generated method stub
           if (keyCode == KeyEvent.KEYCODE_BACK) {
               return false ;
          }
           return super .onKeyDown(keyCode, event);
     }
     
     @Override
     protected void onStop() {
           // TODO Auto-generated method stub
           super.onStop();
           //该欢迎界面Activity stop时结束该Activity
           this.finish();
     }
}

别忘了在AndroidManifest.xml中配置该Activity为入口Activity,另外,为了更加的好看,我们设置了没有标题框(一般应用欢迎界面都没有标题框,有个连状态栏都没有),并且固定了屏幕方向。

        <activity
            android:name=".WelcomeActivity"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Black.NoTitleBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
        </activity>

来看一下最终的效果:



二、使用线程与Handler实现
     当我们想实现界面持续一段时间切换的效果,我们最先想到的应该就是线程了,Android中使用Handler更为方便,只需要使用Handler的postDelayed方法就可以了,我们只需要将上面使用动画方式的例子中欢迎界面Activity稍加修改就可以:
public class WelcomeActivity extends Activity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
          setContentView(R.layout. activity_welcome);
          
          Handler myHandler = new Handler();
           //延时2000毫秒跳转Activity
          myHandler.postDelayed( new Runnable() {
              
               @Override
               public void run() {
                    // TODO Auto-generated method stub
                   Intent  intent = new Intent(WelcomeActivity.this ,MainActivity.class);
                   startActivity(intent);
              }
          }, 2000);
     }
     
     //往往欢迎界面需要屏蔽返回键
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
           // TODO Auto-generated method stub
           if (keyCode == KeyEvent.KEYCODE_BACK) {
               return false ;
          }
           return super .onKeyDown(keyCode, event);
     }
     
     @Override
     protected void onStop() {
           // TODO Auto-generated method stub
           super.onStop();
           //该欢迎界面Activity stop时结束该Activity
           this.finish();
     }
}


可以看到同样实现了跳转的效果,但是没有了动画,这个加动画的话也比较简单,这里就不做了,有兴趣的话大家做一做。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以提供一些参考,但是具体的实现还是需要你自己来完成。下面是一个简单的示例:``` # 引入必要的模块 import tkinter as tk# 窗口布局 root = tk.Tk() root.title("登录界面") root.geometry("300x200")# 创建控件 name_label = tk.Label(root, text="用户名: ") name_label.grid(row=0, column=0) name_entry = tk.Entry(root) name_entry.grid(row=0, column=1)password_label = tk.Label(root, text="密码: ") password_label.grid(row=1, column=0) password_entry = tk.Entry(root, show="*") password_entry.grid(row=1, column=1)# 创建按钮 login_button = tk.Button(root, text="登录") login_button.grid(row=2, column=1)# 运行窗口 root.mainloop() ``` ### 回答2: 使用Python编写一个登录界面可以通过使用Python的图形用户界面(GUI)库来实现。这里以Tkinter库为例: ```python import tkinter as tk from tkinter import messagebox def login(): username = entry_username.get() password = entry_password.get() # 进行用户名和密码的验证 if username == 'admin' and password == 'password': messagebox.showinfo('登录成功', '欢迎回来,' + username + '!') else: messagebox.showerror('登录失败', '用户名或密码不正确,请重试。') # 创建登录窗口 window = tk.Tk() window.title('登录界面') # 创建标签和输入框 label_username = tk.Label(window, text='用户名:') label_username.pack() entry_username = tk.Entry(window) entry_username.pack() label_password = tk.Label(window, text='密码:') label_password.pack() entry_password = tk.Entry(window, show='*') entry_password.pack() # 创建登录按钮 button_login = tk.Button(window, text='登录', command=login) button_login.pack() # 运行窗口 window.mainloop() ``` 这个程序创建了一个简单的登录界面,其中有一个用户名输入框、一个密码输入框和一个登录按钮。当点击登录按钮时,程序会获取输入框中的用户名和密码,并进行验证。如果用户名和密码正确,则弹出一个消息框显示登录成功的提示;如果用户名或密码不正确,则弹出一个错误消息框提示登录失败。 ### 回答3: Python是一种非常流行的编程语言,可以用它来编写各种应用程序和界面。下面是一个使用Python编写的简单登录界面的示例: ```python from tkinter import * def login(): username = entry_username.get() password = entry_password.get() # 在这里可以进行用户名和密码的验证逻辑 if username == "admin" and password == "123456": label_result.config(text="登录成功") else: label_result.config(text="用户名或密码错误") # 创建GUI窗口 window = Tk() window.title("登录界面") # 创建用户名和密码输入框 label_username = Label(window, text="用户名:") label_username.pack() entry_username = Entry(window) entry_username.pack() label_password = Label(window, text="密码:") label_password.pack() entry_password = Entry(window, show="*") # 输入密码时显示为* entry_password.pack() # 创建登录按钮和结果显示标签 button_login = Button(window, text="登录", command=login) button_login.pack() label_result = Label(window) label_result.pack() # 运行窗口主循环 window.mainloop() ``` 这个登录界面使用了Python的GUI库tkinter,创建了一个窗口和几个标签、输入框和按钮,并为登录按钮绑定了一个`login()`函数,用于验证输入的用户名和密码。如果用户名和密码与预设的值相符,则显示登录成功;否则显示用户名或密码错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值