336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Android App의 첫 화면 만들기
우선은 이전에 이용했던 Android Beacon 프로젝트를 이용해서 실습을 진행한다
SplashActivity라는 액티비티를 하나 생성해준다
그런 후 Manifest에서 MainActivity에 있는 intent-filter를 SplashActivity로 옮겨준다
1
2
3
4
5
6
7
8
9
10
|
<activity android:name=".MainActivity">
</activity>
<activity android:name=".SplashActivity" android:theme="@style/Theme.AppCompat.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
|
cs |
그런 후 theme를 NoActionBar를 지정해준다
이제 activity_splash에서 gravity 옵션을 center로 준다
그리고 background를 준다
그런 후에 Google에서 Logo Image를 검색후에 배경이 투명인 파일을 다운 받고 res -> drawable 폴더 안에 넣는다
그런 후에 ImageView를 추가해서 이미지를 추가시켜준다
위와 같이 이미지가 추가된 것을 볼 수 있다 그리고 나서 이미지 뷰와 텍스트 뷰를 정렬 시켜준다
* activity_splash.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<ImageView
android:id="@+id/ivLogo"
android:src="@drawable/logo_image"
android:layout_width="200dp"
android:layout_height="300dp"/>
<LinearLayout
android:gravity="center"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:gravity="center"
android:textSize="25dp"
android:text="곰탱 "
android:textColor="#DDFF0000"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:gravity="center"
android:textSize="25dp"
android:text="자이언츠!"
android:textColor="#dd0000ff"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
|
cs |
위와 같이 작성하면 툴바가 없는 화면이 나오게 된다
이 화면을 앱의 첫 화면으로 만들어 보자
이제 SPlashActivity에서 로직을 작성해본다
* SplashActivity
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
}, 3000);
}
|
cs |
위와 같이 작성되면 시작하고 3초 정도를 보이고 난 후 Main으로 가게된다
postDelayed는 뒤에 초 값을 줘서 시간 이후에 처리를 하겠다는 명령어이다
그러면 우리가 작성한 로고가 뜨고 3초 후 MainActivity를 실행하게 된다
APP의 첫 화면을 생성한 것이다
@ Beancon 이용해 로고화면 띄우기
MyApplication.java에서 beaconManager를 다음과 같이 로직 변경을 해주면 된다
* beaconManager
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
// Android 단말이 Beacon 의 송신 범위에 들어가거나, 나왔을 때를 체크한다.
beaconManager.setMonitoringListener(new BeaconManager.MonitoringListener() {
@Override
public void onEnteredRegion(Region region, List<Beacon> list) {
//showNotification("들어옴", "비콘 연결됨" + list.get(0).getRssi());
Intent intent = new Intent(getApplicationContext(), SplashActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("executeType", "beacon");
getApplicationContext().startActivity(intent);
}
@Override
public void onExitedRegion(Region region) {
//showNotification("나감", "비콘 연결끊김");
}
});
|
cs |
위와 같이 작성 후에 SplashActivity에서 인텐트를 받아준다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
public class SplashActivity extends AppCompatActivity {
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
String executeType = getIntent().getStringExtra("executeType");
if ( executeType == null ) {
executeType = "";
}
handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
}, 3000);
}
}
|
cs |
위와 같이 작성 후에 핸드폰을 통해서 비콘 신호를 받으면 앱 로고가 뜨게 된다
위의 소스를 응용해서 각각 조건마다 다른 액티비티를 띄울 수도 있다
* SplashActivity
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
String executeType = getIntent().getStringExtra("executeType");
if ( executeType == null ) {
executeType = "";
}
handler = new Handler();
final String finalExecuteType = executeType;
boolean beacon = handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = null;
if ( finalExecuteType != null && finalExecuteType.equals("beacon")) {
intent = new Intent(SplashActivity.this, CouponActivity.class);
}
else {
intent = new Intent(SplashActivity.this, MainActivity.class);
}
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
}, 3000);
}
|
cs |
CouponActivity를 대충 하나 생성해서 다른걸 열리는 것을 보자
앱을 첫 실행을 했을 때는 로고가 뜬 후 메인액티비티가 열린다 하지만 비콘을 통해 접근하면 로고 화면 이후에 쿠폰 액티비티로 넘어가게 된다
'[ Developer ] > Android' 카테고리의 다른 글
[Android] 안드로이드 서비스 이용한 타이머 Service (0) | 2016.08.07 |
---|---|
[Android] 안드로이드 리시버 Receiver (0) | 2016.08.05 |
[Android] 안드로이드 가로모드 Landscape (4) | 2016.08.03 |
[Android] 안드로이드 카메라 구동시키기 (9) | 2016.08.02 |
[Android] 안드로이드 웹 서버 응답 받기 Android to Spring (2) | 2016.08.01 |