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

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”

就可以了

相关资源:qq冻结查询软件番薯QQ冻结查询器v2.0-其它代码类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月20日
下一篇 2021年4月20日

相关推荐