Android 는 그 라 데 이 션 시작 페이지 와 표시 기 가 있 는 안내 페이지 를 실현 합 니 다.
효과 그림:
실현 절차:
1.우선 그 라 데 이 션 애니메이션 의 시작 페이지 SplashActivity 를 만 듭 니 다.
onCreate 에 핵심 방법 설정 setAlphaAnimation()
public void setAlphaAnimation(){
// AlphaAnimation
AlphaAnimation animation= new AlphaAnimation(this);
//
animation.setDuration(3000);
// , imageview,textview,linearLayout
ll.setAnimation(animation);
// , ( , )
animation.setAnimationListener(new Animation.AnimationListener(){
public void onAnimationStart(Animation animation){ }
public void onAnimationEnd(Animation animation){
jump2Activity();
}
public void onAnimationRepeat(Animation animation){ }
});
}
이 점프 방법 을 분석 해 보 세 요.저 희 는 Shared Peference 를 사용 하여 응용 프로그램 이 처음 열 렸 는 지 여 부 를 판단 합 니 다.변수 isFirst 기본 값 을 0 으로 설정 하고 안내 페이지 에 들 어 갈 때 이 값 을 1 로 설정 합 니 다.그러면 매번 점프 할 때마다 isFirst 의 값 을 판단 합 니 다.기본 값 0 이면 처음으로 안내 페이지 에 들 어가 고 반대로 홈 페이지 에 들 어 갑 니 다.
public void jump2Activity(){
SharedPreferences sharedPreference= getSharedPreferences("data", MODE_PRIVATE);
String isFirst= sharedPreferences.getString("isFirst", "0");
Intent intent= new Intent();
if("0".equals(isFirst)){
intent.setClass(this, GuideActivity.class);
}else{
intent.setClass(this. MainActivity.class);
}
startActivity(intent);
finish();
}
2.다음은 안내 페이지 를 만 들 겠 습 니 다.안내 페이지 는 세 개의 컨트롤 로 구성 되 어 있 습 니 다.Viewpager,원점 표시 기의 선형 레이아웃 linearlayout, 마지막 페이지 의"응용 프로그램 진입" 버튼
<?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.support.v4.view.ViewPager
android:id="@+id/guide_vp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout
android:id="@+id/guide_ll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="100dp"
android:orientation="horizontal" />
<Button
android:id="@+id/guide_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/guide_ll"
android:layout_centerHorizontal="true"
android:text=" "
android:layout_marginBottom="10dp"
android:visibility="gone"/>
</RelativeLayout>
GuideActivity 에서 먼저 안내 그림 을 초기 화 합 니 다.
/**
*
*/
private void initImgs() {
ViewPager.LayoutParams params= new ViewPager.LayoutParams();
imageViews= new ArrayList<ImageView>();
for (int i= 0; i< imgs.length; i++){
ImageView imageView= new ImageView(this);
imageView.setLayoutParams(params);
imageView.setImageResource(imgs[i]);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageViews.add(imageView);
}
}
아래쪽 원점 표시 기 를 초기 화 합 니 다.여기 서 언급 할 만 한 것 은 우리 가 각 원점 에 해당 하 는 클릭 이 벤트 를 설정 하 는 것 입 니 다.특정한 위치의 원점 을 클릭 할 때 viewpager 는 해당 위치 에 있 는 그림 으로 자동 으로 전환 합 니 다.그러나 실제 응용 에서 여 기 는 실용성 이 크 지 않 습 니 다.원점 이 너무 작 아서 터치 범위 가 제한 되 어 있 기 때문에 이 벤트 를 클릭 하면 터치 하기 가 쉽 지 않 습 니 다.
/**
*
*/
private void initDots() {
LinearLayout layout= findViewById(R.id.guide_ll);
LinearLayout.LayoutParams params= new LinearLayout.LayoutParams(20, 20);
params.setMargins(10, 0, 10, 0);
dotViews= new ImageView[imgs.length];
for (int i= 0; i< imageViews.size(); i++){
ImageView imageView= new ImageView(this);
imageView.setLayoutParams(params);
imageView.setImageResource(R.drawable.dotselector);
if (i== 0){
imageView.setSelected(true);
}else{
imageView.setSelected(false);
}
dotViews[i]= imageView;
final int finalI = i;
dotViews[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
vp.setCurrentItem(finalI);
}
});
layout.addView(imageView);
}
}
viewpager 의 미끄럼 이벤트 설정
vp.addOnPageChangeListener(this);
세 가지 방법 을 생 성 합 니 다.저 희 는 주로 onPageSelected()방법 에서 동작 합 니 다.특정한 위치의 원점 이 선택 되 었 을 때 선 택 된 그림 을 표시 하고 나머지 원점 은 선택 되 지 않 은 그림 을 표시 합 니 다.여 기 는 주로 selector 컨트롤 러 를 사용 합 니 다.해당 선택 되 지 않 은 원점 그림 은 여러분 이 찾 아야 합 니 다.마지막 페이지 로 미 끄 러 질 때"응용 프로그램 에 들 어 갑 니 다" 의 단 추 를 표시 합 니 다.반대로 숨 깁 니 다.
@Override
public void onPageScrolled(int i, float v, int i1) {}
@Override
public void onPageScrollStateChanged(int i) {}
@Override
public void onPageSelected(int arg0) {
for (int i= 0; i< dotViews.length; i++){
if (arg0== i){
dotViews[i].setSelected(true);
}else {
dotViews[i].setSelected(false);
}
if (arg0== dotViews.length- 1){
btn.setVisibility(View.VISIBLE);
}else {
btn.setVisibility(View.GONE);
}
}
}
dotSelector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/focus_on" android:state_selected="true"/>
<item android:drawable="@drawable/focus_nomal" android:state_selected="false"/>
</selector>
마지막 페이지 에서"애플 리 케 이 션 진입"을 누 르 십시오. 단 추 를 누 르 면 홈 페이지 로 이동 할 때 캐 시 에 있 는 isFirst 데 이 터 를 1 로 바 꾸 고 나중에 응용 프로그램 을 열 면 안내 페이지 에 들 어가 지 않 습 니 다.
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.guide_btn:
setisFirst();
Intent intent= new Intent(GuideActivity.this, MainActivity.class);
startActivity(intent);
finish();
break;
}
}
/**
*
*/
private void setisFirst() {
SharedPreferences.Editor editor= getSharedPreferences("data", MODE_PRIVATE).edit();
editor.putString("isFirst", "1");
editor.commit();
}
이로써 모두 완성!demo 첨부원본 코드 다운로드
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.