본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android] Overview screen 을 꾸며보세요.

by 돼지왕왕돼지 2017. 4. 11.

 [Android] Overview screen 을 꾸며보세요.


http://www.bignerdranch.com/blog/polishing-your-Android-overview-screen-entry

activity, activitymanager, Android, application, compatability, home key long press, Icon, Label, label text color, launch, lollipop, Los, Main, multi tasking, multitasking, Overview, primary color, Runtime, Screen, settaskdescription, System, task, task manager, taskdescription, Theme, Title, top bar 색상, [Android] Overview screen 을 꾸며보세요., 화면


-
Overview Screen( Home key long press 혹은 multi tasking button ) 을 Lollipop 부터는 꾸밀 수 있게 되었다.

새로운 API 를 이용해 icon, title, top bar 색상 등을 수정할 수 있다.


-
별다른 설정을 하지 않으면 android:icon, android:label, android:theme 을 통해 icon, title, top bar color 가 각각 정해진다.
이 값들은 base activity( launch, main ) 로부터 가져온다.
만약 해당 activity 에 값이 정의되어 있지 않으면, application level 에서 해당 값을 가져온다.


-
label text color 는 직접 지정할 수 없고, system 이 top bar 색상을 기반으로 자동으로 정한다.
만약 top bar 가 어둡다면 text 는 밝을 것이다.


-
top bar color 는 colorPrimary 값을 사용하는데 이 값은 Lollipop 에서 생긴 값이다.
따라서 compatability 를 위해 v7-appcompat 사용이 권장된다.

activity, activitymanager, Android, application, compatability, home key long press, Icon, Label, label text color, launch, lollipop, Los, Main, multi tasking, multitasking, Overview, primary color, Runtime, Screen, settaskdescription, System, task, task manager, taskdescription, Theme, Title, top bar 색상, [Android] Overview screen 을 꾸며보세요., 화면



-
Lollipop 에서는 TaskDescription 을 이용하여 runtime 에 이 값들을 조작할 수 있다.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

// primary color 가져오기

TypedValue typedValue = new TypedValue();

Resources.Theme theme = getTheme();

theme.resolveAttribute(R.attr.colorPrimary, typedValue, true);

int color = typedValue.data;


// Overview 에 사용할 이미지 load

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.ic_activity_welcome);

ActivityManager.TaskDescription td = new ActivityManager.TaskDescription(null, bm, color);

setTaskDescription(td);

bm.recycle();

}





댓글0