全屏转载文章:http://blog.csdn.net/harry_helei/article/details/7690520
动画加载转载文章(activity之间):http://mzh3344258.blog.51cto.com/1823534/807337
动画加载转载文章(view动画) : http://blog.csdn.net/forlong401/article/details/9750903
在android应用开发中,我们往往希望程序启动的时候,能够全屏的显示一张图片,并且能够以动画的形式加载加来,
这里就就解决这两个问题。
1.全屏显示,在代码中实现:
// 设置无标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
// 全屏显示
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);
//这句话一定要放在最后,负责后报错
setContentView(R.layout.splash);
2.动画加载:
//动画显示
AlphaAnimation aa = new AlphaAnimation(0.0f, 1.0f);
aa.setDuration(2000);
ll_splash_main.startAnimation(aa);
//我在运行上面的代码的时候竟然发现,如果我的后面后面导入主界面的画面
//即:动画完之后就应该是主界面,可我发现,动画都没有显示,就直接进入主界面了
//我想是不是 这个持续时间是异步的(我猜的),没办法,我只能让主线程等待2s
//让动画显示完毕之后,再去加载主界面
activity之间切换时的动画效果:
<span style="font-size:18px;"> @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_next:
Intent intent = new Intent(this, SetUpGuide2Activity.class);
// 从当前任务栈李移除,防止用户按back键回到当前页面
finish();
startActivity(intent);
// 设置activity切换时的动画效果 淡入淡出
overridePendingTransition(R.anim.alpha_in, R.anim.alpha_out);
break;
}
}</span>
</pre><pre name="code" class="java">
<span style="font-size:18px;">资源文件</span>
<span style="font-size:18px;"><pre name="code" class="java"><?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="300"
android:fromAlpha="0.0"
android:toAlpha="1.0" >
</alpha></span>
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="400"
android:fromXDelta="100%p"
android:toXDelta="0" >
</translate></span>
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="400"
android:fromXDelta="0"
android:toXDelta="-100%p" >
</translate></span>
3.版本号:
当前应用程序的版本号:
在我们的AndroidManifest.xml清单文件中,就有我们的版本号,所以我们取出的版本号即来自这里
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.itcast.modifysafe" android:versionCode="1" android:versionName="1.0" >
获取当前系统的版本号:
textView.setText("Product Model: " + android.os.Build.MODEL + ","
+ android.os.Build.VERSION.SDK + ","
+ android.os.Build.VERSION.RELEASE);
//看代码
<span style="font-size:18px;"><span style="font-size:18px;">package cn.itcast.modifysafe.ui;
import cn.itcast.modifysafe.R;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.view.Menu;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.AlphaAnimation;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
//全屏显示
//显示版本号
public class AplashActivity extends Activity {
private TextView tv_splash_version;
private RelativeLayout ll_splash_main;
private Handler handler=new Handler () {
public void handleMessage(Message msg) {
super.handleMessage(msg);
loadMainUi();
}
};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置无标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
// 全屏显示
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);
setContentView(R.layout.splash);
tv_splash_version = (TextView) findViewById(R.id.tv_splash_version);
ll_splash_main = (RelativeLayout) findViewById(R.id.ll_splash_main);
//动画显示
AlphaAnimation aa = new AlphaAnimation(0.0f, 1.0f);
aa.setDuration(2000);
ll_splash_main.startAnimation(aa);
String vrsionName = getVersionName();
tv_splash_version.setText(vrsionName);
//主线程延时2s 让动画完全显示完毕
new Thread() {
public void run() {
try {
sleep(2000);
handler.sendEmptyMessage(0);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}.start();
}
// 得到版本号
private String getVersionName() {
String version = null;
try {
// 获取packagemanager的实例
PackageManager manager = getPackageManager();
// getPackageName 是你当前类的包名,0代表获取版本信息
PackageInfo info = manager.getPackageInfo(getPackageName(), 0);
version = info.versionName;
} catch (NameNotFoundException e) {
e.printStackTrace();
return "版本号未知";
}
return version;
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
private void loadMainUi () {
Intent intent =new Intent();
intent.setClass(AplashActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
}
</span></span>
布局文件代码:
<span style="font-size:18px;"><span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/logo2"
android:gravity="center_horizontal"
android:orientation="vertical"
android:id="@+id/ll_splash_main" >
<TextView
android:id="@+id/tv_splash_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="72dp"
android:text="版本号"
android:textColor="#555555"
android:textSize="25sp" />
</RelativeLayout></span></span>