티스토리 뷰
반응형
// res밑에 anim폴더를 만들고 거기에 alpha.xml파일을 생성 한다.
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<alpha // rotate, scale, translate
android:fromAlpha="0.0" // 투명에서
android:toAlpha="1.0" // 불투명으로
android:duration="2000" // 시간
android:repeatCount="0"
/>
</set>
// Manifest 액티비티 추가시
<!-- 로고가 먼저 떠야 하므로 <action android:name="android.intent.action.MAIN" />를이쪽으로 옮겨 주엇다. -->
<activity android:name="Logo">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"></category>
</intent-filter>
</activity>
// Logo.java
public class Logo extends Activity {
LinearLayout mLinear;
Animation mAni = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.logo);
mLinear = (LinearLayout)findViewById(R.id.linearLogo);
mAni = AnimationUtils.loadAnimation(Logo.this, R.anim.alpha);
mLinear.startAnimation(mAni); // 레이아웃으로 애니메이션 표현
// 애니메이션 이벤트
mAni.setAnimationListener(new AnimationListener() {
// 애니메이션이 끝난 다음
public void onAnimationEnd(Animation animation) {
// 끝남과 동시에 메인 액티비티 호출
Intent intent = new Intent(Logo.this, Main.class);
startActivity(intent);
}
// 시작 할 때
public void onAnimationStart(Animation animation) {
}
// 반복할 때
public void onAnimationRepeat(Animation animation) {
}
});
}
// 종료 관련 1
protected void onNewIntent(Intent intent)
{
super.onNewIntent(intent);
boolean isKill = intent.getBooleanExtra("KILL_ACT", false);
if(isKill) close();
}
// 종료 관련 2
private void close()
{
finish();
int nSDKVersion = Integer.parseInt(Build.VERSION.SDK);
if(nSDKVersion < 8) //2.1이하
{
ActivityManager actMng = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
actMng.restartPackage(getPackageName());
}
else
{
new Thread(new Runnable() {
public void run() {
ActivityManager actMng = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
String strProcessName = getApplicationInfo().processName;
while(true)
{
List<RunningAppProcessInfo> list = actMng.getRunningAppProcesses();
for(RunningAppProcessInfo rap : list)
{
if(rap.processName.equals(strProcessName))
{
if(rap.importance >= RunningAppProcessInfo.IMPORTANCE_BACKGROUND)
actMng.restartPackage(getPackageName());
Thread.yield();
break;
}
}
}
}
}, "Process Killer").start();
}
}
}
반응형
'Android > 실전 TIP' 카테고리의 다른 글
알람으로 일정 간격 반복 되게 하기 (0) | 2019.03.25 |
---|---|
메인이 로고인 경우 바로 종료 시키기 (0) | 2019.03.25 |
앱에서 다른 어플 실행 하기 (0) | 2019.03.25 |
문자 전송 기능 (0) | 2019.03.25 |
앱에서 마켓 연결 (0) | 2019.03.25 |
댓글
반응형
최근에 올라온 글
- Total
- Today
- Yesterday