android程序启动动画,Android设置软件启动动画(以及初次安装的几张引导图)
Android設置軟件啟動動畫(以及初次安裝的幾張引導圖)
設置軟件啟動動畫
1 創建一個啟動Activity 這里叫做QiDongActivity
它的XML中設置一個matchparent的背景圖
2 在Manifest.xml文件中:
3 在java文件中 設置延時
private final int DISPLAY_LENGHT = 1000; //延遲1秒
//用子線程做延時操作再跳轉到你要的主界面
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
Intent mainIntent = new Intent(QiDongActivity.this,LoginActivity.class);
QiDongActivity.this.startActivity(mainIntent);
QiDongActivity.this.finish();
}
},DISPLAY_LENGHT);//延時1秒
設置初次下載時的軟件使用提示
在啟動Activity中,setContentView之前,通過SharedPreference來進行
public class QiDongActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 先判斷是否為第一次安裝啟動軟件
SharedPreferences firstShared = getSharedPreferences("isFristDownLoad", MODE_PRIVATE);
boolean isFirst = firstShared.getBoolean("isFristDownLoad", true); // 當不存在 即首啟動時 則設置為true
SharedPreferences.Editor editor = firstShared.edit();
if (isFirst) {
Intent intent = new Intent(QiDongActivity.this, GuideActivity.class);
startActivity(intent);
finish();
editor.putBoolean("isFristDownLoad", false);
editor.apply();
} else {
setContentView(R.layout.activity_qi_dong);
StatusBarUtil.setTransparent(QiDongActivity.this);
//申請權限
getPhoneState();
}
}
啟動界面:
public class GuideActivity extends AppCompatActivity{
// 引導頁圖片資源
private static final int[] pics = { R.layout.guide_pic1, R.layout.guide_pic2};
private ImageView imageView0,imageView1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StatusBarUtil.setTransparent(GuideActivity.this);
setContentView(R.layout.activity_guide);
ViewPager viewPager = findViewById(R.id.view_pager);
imageView0 = findViewById(R.id.imageview0);
imageView1 = findViewById(R.id.imageview1);
imageView0.setImageResource(R.drawable.guide_white_circle);
imageView1.setImageResource(R.drawable.guide_transparent_circle);
List views = new ArrayList<>();
// 初始化引導頁視圖列表
for (int i = 0; i < pics.length; i++) {
View view = LayoutInflater.from(this).inflate(pics[i], null);
if (i == pics.length - 1) {
Button startBtn = view.findViewById(R.id.btn_enter);
startBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(GuideActivity.this, QiDongActivity.class);
startActivity(intent);
}
});
}
views.add(view);
}
GuideViewPagerAdapter adapter = new GuideViewPagerAdapter(views);
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new PageChangeListener());
}
private class PageChangeListener implements ViewPager.OnPageChangeListener {
@Override
public void onPageScrollStateChanged(int position) {
}
@Override
public void onPageScrolled(int position, float arg1, int arg2) {
}
@Override
public void onPageSelected(int position) {
if(position == 0){
imageView0.setImageResource(R.drawable.guide_white_circle);
imageView1.setImageResource(R.drawable.guide_transparent_circle);
}else {
imageView1.setImageResource(R.drawable.guide_white_circle);
imageView0.setImageResource(R.drawable.guide_transparent_circle);
}
}
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
finish();
}
@Override
protected void onStop() {
super.onStop();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
GuideAdapter
public class GuideViewPagerAdapter extends PagerAdapter {
private List mListViews;
public GuideViewPagerAdapter(List mListViews) {
this.mListViews = mListViews;
}
//直接繼承PagerAdapter,至少必須重寫下面的四個方法,否則會報錯
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(mListViews.get(position));//刪除頁卡
}
@Override
public Object instantiateItem(ViewGroup container, int position){
//這個方法用來實例化頁卡
container.addView(mListViews.get(position), 0);//添加頁卡
return mListViews.get(position);
}
@Override
public int getCount() {
return mListViews.size();//返回頁卡的數量
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;//官方提示這樣寫
}
}
activity_guide.xml
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
android:layout_marginBottom="5dp"
android:layout_centerHorizontal="true"
>
android:layout_width="10dp"
android:layout_height="10dp"
/>
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_marginLeft="2dp"
android:layout_marginStart="2dp" />
選中的點和未選中的點樣式:
android:topRightRadius="5dp"
android:bottomRightRadius="5dp"
android:bottomLeftRadius="5dp"/>
android:topRightRadius="5dp"
android:bottomRightRadius="5dp"
android:bottomLeftRadius="5dp"/>
guide_pic1 和 guide_pic2
android:layout_width="match_parent" android:layout_height="match_parent">
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/guide_01"
android:scaleType="fitXY"
/>
問題:
一、明明設置了高度和寬度都matchparent 但是還是不能覆蓋全屏
解決:
1 可能是你的圖片本身大小不夠 所以即使控件matchparent 但是 圖片卻只有這么大 所以改圖片大小
2 圖片夠大,還是不能覆蓋。將 ImageView加一個屬性
android:scaleType="fitXY"
就可以了
總結
以上是生活随笔為你收集整理的android程序启动动画,Android设置软件启动动画(以及初次安装的几张引导图)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android button自定义样式详
- 下一篇: 英雄无敌3有哪些秘籍(英雄联盟全新官方网