반응형
앱을 만들다 보니 로딩 화면에서 광고문구등을 넣어서 사용하고 싶은 요청이 있다. 이런건 어떻게 ? 그냥 쉬운 생각으로 빈 activity 을 만들어서 잠시 보여주고 그냥 닫아 주면 되지 않을까 ? 그래서 다소 빈약한 layout을 가지는 activity을 하나 만들었다.
먼저 layout
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="18dp"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingRight="18dp"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".LoadingPage">
<TextView
android:id="@+id/textView"
android:layout_width="180dp"
android:layout_height="65dp"
android:text="@string/loading"
android:textSize="34sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.593"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.421" />
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="36dp"
android:layout_marginTop="420dp"
android:gravity="center_horizontal|center_vertical"
android:textSize="20sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="36dp"
android:layout_marginTop="460dp"
android:gravity="center_horizontal|center_vertical"
android:textSize="20sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="36dp"
android:layout_marginTop="500dp"
android:gravity="center_horizontal|center_vertical"
android:textSize="20sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
결과물은 이런 정도 메시지가 들어가는 layout
예시물에는 사용자의 요청에 따라 일부 문구가 들어가기는 하지만,
이건 단순 예제 이니 참고만...
다음은 activity을 만들면...
public class LoadingPage extends Activity implements View.OnClickListener {
private static final String TAG = "LoadingPage";
ActivityLoadingPageBinding binding ;
SharedPreferences sp ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sp = getSharedPreferences(getPackageName(), MODE_PRIVATE);
binding = ActivityLoadingPageBinding.inflate(getLayoutInflater());
View view = binding.getRoot() ;
setContentView(view);
}
@Override
protected void onStart() {
super.onStart();
startLoading();
}
private void startLoading() {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
finish();
}
}, 3000);
}
}
이런 정도의 코드... acitivity 의 lifecycle 을 보고 어디쯤에서 종료를 하게 만들껀가 그것을 고민했고, 다음은 열리자 마자 닫아 버리면 안되니까... handler 을 이용해서 약간의 지연 (3000ms = 3sec) 을 두고 앱을 종료해 주는 것으로 끝.
그럼 이걸 어떻게 호출하지 하는 건 다음과 같이 MainActvity 에서 호출하는 방식으로 처리를 했다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
Intent intent = new Intent(this, LoadingPage.class);
startActivity(intent);
...
}
이렇게 MainActivity 을 시작하자 마자 LoadingPage 을 호출하는 것으로 그렇게 하면 사용자는 메인화면위에 올라온 loading 페이지를 잠시 보고 사라지는 것을 보게될 것이다.
이것으로 끝,,,
반응형
'모바일 앱(안드로이드)' 카테고리의 다른 글
안드로이드 앱 만들기 도전 1일차 geofences 을 활용한 앱 (0) | 2021.08.01 |
---|---|
android studio 인증서 오류 해소 (0) | 2021.07.31 |
안드로이드 앱 만들기 동적 테마 변경 따라해 보기 (0) | 2021.07.29 |
안드로이드 앱 만들기 상태바 숨기기 / 전체화면 만들기. (0) | 2021.07.28 |
안드로이드 앱 만들기 갤러리 에서 이미지 받아오기 (자동회전 방지) (0) | 2021.07.22 |