Android UI 디자인 및 개발 구현 애플 리 케 이 션 은 한 번 만 안내 인터페이스 를 시작 합 니 다.

이 글 은 전체 안내 인터페이스 개발 주제 에 대한 끝 이 라 고 할 수 있 습 니 다.개인 적 으로 대부분의 안내 인터페이스 가 대체적으로 천편일률 적 이 라 고 생각 합 니 다.하 나 를 능숙 하 게 파악 하면 할 말 이 없습니다.앞으로 의 개발 에서 더 좋 은 게임 을 만 나 게 되면 더욱 재 미 있 는 안내 인터페이스 도 여기 서 신속하게 여러분 과 공유 할 것 입 니 다.오늘 의 내용 은 주로 여러분 에 게 가 르 치 는 프로그램 이 처음 시작 할 때 만 안내 화면 을 표시 하고 나중에 프로그램 을 시작 할 때 더 이상 표시 되 지 않 는 다 는 것 입 니 다.
사실 이러한 효 과 를 실현 하려 면 Shared Preferences 류 를 사용 하면 프로그램 이 매우 간단 해 집 니 다.다음은 이러한 사용 방법 을 자세히 소개 합 니 다.
1.Shared Preferences 의 상세 한 소개 와 용법
SharedPreferences 소개:
소프트웨어 개발 을 하면 많은 소프트웨어 에 프로필 이 있다 는 것 을 알 수 있 을 것 입 니 다.그 안에 이 프로그램 이 실행 중인 각 속성 값 을 저장 합 니 다.설정 정보 가 많 지 않 기 때문에 데이터 베 이 스 를 이용 하여 저장 하 는 것 은 수지 가 맞지 않 습 니 다.데이터 베이스 연결 과 조작 등 시간 이 걸 려 서 절차 의 효율 에 큰 영향 을 주 었 기 때 문 입 니 다.따라서 우 리 는 키 와 같은 일일이 대응 하 는 관 계 를 사용 하여 이 설정 정 보 를 저장 합 니 다.Shared Preferences 는 바로 Android 에서 이 저장 방식 을 실현 하 는 기술 입 니 다.
Shared Preferences 의 사용 은 매우 간단 하여 데 이 터 를 쉽게 저장 하고 읽 을 수 있 습 니 다.Shared Preferences 는 String,int 등 간단 한 형식의 데이터 만 저장 할 수 있 습 니 다.일반적으로 복잡 한 형식의 데 이 터 를 Base 64 인 코딩 으로 변환 한 다음 변 환 된 데 이 터 를 XML 파일 에 문자열 로 저장 하고 Shared Preferences 로 저장 합 니 다.
SharedPreferences 사용 방법:
<1>Activity 류 의 getShared Preferences 방법 으로 Shared Preferences 대상 을 얻 습 니 다.그 중에서 key-value 를 저장 하 는 파일 의 이름 은 getShared Preferences 방법의 첫 번 째 매개 변수 로 지 정 됩 니 다.
<2>SharedPreferences 인터페이스의 edit 를 사용 하여 SharedPreferences.Editor 대상 을 가 져 옵 니 다.
<3>Shared Preferences.Editor 인터페이스의 putXxx 방법 으로 key-value 쌍 을 저장 합 니 다.그 중에서 Xxx 는 서로 다른 데이터 형식 을 나타 낸다.예 를 들 어 문자열 형식의 value 는 putString 방법 을 사용 해 야 합 니 다.
<4>Shared Preferences.Editor 인터페이스의 commt 방법 으로 key-value 쌍 을 저장 합 니 다.commt 방법 은 데이터베이스 트 랜 잭 션 의 제출(commt)작업 에 해당 합 니 다.
구체 적 인 코드 의 작성 절 차 는 다음 과 같다.
A.데이터 정보 저장
<1>preferences 를 엽 니 다.이름 은 setting 입 니 다.존재 하면 엽 니 다.그렇지 않 으 면 새로운 Preferences 를 만 듭 니 다.
         SharedPreferences settings = getSharedPreferences(“setting”, 0);
<2>setting 을 편집 상태 로 만 들 기
         SharedPreferences.Editor editor = settings.edit();
<3>데이터 저장
         editor.putString(“name”,”ATAAW”);
         editor.putString(“URL”,”ATAAW.COM”);
<4>제출 완료
         editor.commit();
B.데이터 정보 읽 기
<1>환경 설정 가 져 오기
         SharedPreferences settings = getSharedPreferences(“setting”, 0);
<2>데이터 추출
         String name=settings.getString("name","기본 값");
         String url = setting.getString(“URL”,”default”);
       이상 은 Shared Preferences 의 사용 방법 입 니 다.그 중에서 만 든 Preferences 파일 의 저장 위 치 는 Eclipse 에서 볼 수 있 습 니 다.
DDMS->File Explorer //shared_prefs/setting.xml
2.실현 의 효과 도
첫 번 째 시작 프로그램:환영 인터페이스-->안내 인터페이스-->홈 페이지
이후 시작 프로그램:시작 페이지-->시스템 홈 페이지
처음 시작 할 때의 효과 도
환영 인터페이스:
 
유도 인터페이스 효과 도 1:

유도 인터페이스 효과 도 2:

홈 페이지 입장:

이후 프로그램 시작 효과 도
환영 인터페이스:
 
프로그램 홈 페이지:

3.프로그램의 디 렉 터 리 구조

4.구체 적 인 실현 코드
1、  안내 레이아웃 인터페이스 에 ViewPager 구성 요소,activity 추가guide.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 xmlns:tools="http://schemas.android.com/tools" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" > 
 
 <android.support.v4.view.ViewPager 
  android:id="@+id/viewpager" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" /> 
</RelativeLayout> 
2、이어서 guideview 01.xml 등 몇 개의 레이아웃 페이지 에 안내 인터페이스 에 표시 할 그림 과 컨트롤 을 추가 합 니 다.이 몇 개의 레이아웃 인터페이스 가 모두 대동소이 하기 때문에 여기 서 일일이 붙 이지 않 겠 습 니 다.필요 한 학생 이 있 으 면 원본 코드 를 직접 다운로드 할 수 있 습 니 다.guideview01.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 android:background="@drawable/star_img1" 
 android:orientation="vertical" > 
</RelativeLayout> 
3,그리고 환영 인터페이스의 레이아웃 인터페이스,activitywelcome:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 android:orientation="vertical" 
 android:background="@drawable/welcome_background"> 
</LinearLayout> 
4.마지막 으로 메 인 인터페이스의 레이아웃,activitymain:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 xmlns:tools="http://schemas.android.com/tools" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" > 
 
 <TextView 
  android:id="@+id/textView1" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  android:layout_alignParentLeft="true" 
  android:layout_alignParentTop="true" 
  android:text="       !" 
  android:textSize="25sp"/> 
</RelativeLayout> 
5.여기 서 xml 파일 을 만들어 서 사용자 정의 단추 의 효 과 를 실현 해 야 합 니 다.사용자 정의 단추 의 효과 실현 에 대해 저 는 뒤의 글 에서 자세히 소개 하 겠 습 니 다.여 기 는 start 를 군말 하지 않 습 니 다.btn.xml:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
 <item android:state_enabled="true" android:state_pressed="true" 
  android:drawable="@drawable/login_button_select" /> <!--      -->     
 <item android:state_enabled="true" android:drawable="@drawable/login_button" /> <!--       --> 
</selector> 
6.레이아웃 인터페이스 에 대한 설명 이 끝 났 습 니 다.다음 에 상세 한 코드 설명 을 하 겠 습 니 다.ViewPager 어댑터 코드,ViewPager Adapter.Java:

package com.yangyu.myguideview04; 
 
import java.util.ArrayList; 
 
import android.support.v4.view.PagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.view.View; 
 
/** 
 * @author yangyu 
 *     :ViewPager   ,       view 
 */ 
public class ViewPagerAdapter extends PagerAdapter { 
  
 //     
 private ArrayList<View> views; 
  
 public ViewPagerAdapter (ArrayList<View> views){ 
  this.views = views; 
 } 
   
 /** 
  *         
  */ 
 @Override 
 public int getCount() { 
   if (views != null) { 
    return views.size(); 
   }  
   return 0; 
 } 
 
 /** 
  *    position      
  */ 
 @Override 
 public Object instantiateItem(View view, int position) { 
   
  ((ViewPager) view).addView(views.get(position), 0); 
   
  return views.get(position); 
 } 
  
 /** 
  *             
  */ 
 @Override 
 public boolean isViewFromObject(View view, Object arg1) { 
  return (view == arg1); 
 } 
 
 /** 
  *   position      
  */ 
 @Override 
 public void destroyItem(View view, int position, Object arg2) { 
  ((ViewPager) view).removeView(views.get(position));   
 } 
} 
7.안내 인터페이스 활동,GuideActivity.java:

package com.yangyu.myguideview04; 
 
import java.util.ArrayList; 
 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.view.ViewPager; 
import android.support.v4.view.ViewPager.OnPageChangeListener; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
 
/** 
 * @author yangyu 
 *     :    activity  
 */ 
public class GuideActivity extends Activity implements OnPageChangeListener{ 
 //   ViewPager   
 private ViewPager viewPager; 
 
 //   ViewPager    
 private ViewPagerAdapter vpAdapter; 
 
 //     ArrayList   View 
 private ArrayList<View> views; 
 
 //       View   
 private View view1, view2, view3, view4; 
  
 //         
 private Button startBt; 
   
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_guide); 
   
  initView(); 
   
  initData(); 
 } 
 
 /** 
  *       
  */ 
 private void initView() { 
  //             
  LayoutInflater mLi = LayoutInflater.from(this); 
  view1 = mLi.inflate(R.layout.guide_view01, null); 
  view2 = mLi.inflate(R.layout.guide_view02, null); 
  view3 = mLi.inflate(R.layout.guide_view03, null); 
  view4 = mLi.inflate(R.layout.guide_view04, null); 
  
  //    ViewPager 
  viewPager = (ViewPager) findViewById(R.id.viewpager); 
 
  //    ArrayList   
  views = new ArrayList<View>(); 
 
  //    ViewPager    
  vpAdapter = new ViewPagerAdapter(views); 
   
  //        
  startBt = (Button) view4.findViewById(R.id.startBtn); 
 } 
 
 /** 
  *       
  */ 
 private void initData() { 
  //      
  viewPager.setOnPageChangeListener(this); 
  //         
  viewPager.setAdapter(vpAdapter); 
 
  //       View       
  views.add(view1); 
  views.add(view2); 
  views.add(view3); 
  views.add(view4);   
         
  //           
  startBt.setOnClickListener(new OnClickListener() { 
   @Override 
   public void onClick(View v) { 
     startbutton(); 
   } 
  }); 
 } 
 
 @Override 
 public void onPageScrollStateChanged(int arg0) { 
    
 } 
 
 @Override 
 public void onPageScrolled(int arg0, float arg1, int arg2) { 
   
 } 
 
 @Override 
 public void onPageSelected(int arg0) { 
   
 } 
  
 /** 
  *          
  */ 
 private void startbutton() { 
  Intent intent = new Intent(); 
  intent.setClass(GuideActivity.this,MainActivity.class); 
  startActivity(intent); 
  this.finish(); 
  } 
} 
8,환영 인터페이스 활동,Welcome.java:

package com.yangyu.myguideview04; 
 
import android.app.Activity; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.content.SharedPreferences.Editor; 
import android.os.Bundle; 
 
/** 
 * @author yangyu 
 *     :     
 */ 
public class Welcome extends Activity implements Runnable { 
  
 //         
 private boolean isFirstUse; 
  
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_welcome); 
  /** 
   *          
   */ 
  new Thread(this).start(); 
 } 
 
 public void run() { 
  try { 
   /** 
    *        
    */ 
   Thread.sleep(2000); 
    
   //  SharedPreferences       
   SharedPreferences preferences = getSharedPreferences("isFirstUse",MODE_WORLD_READABLE); 
 
   isFirstUse = preferences.getBoolean("isFirstUse", true); 
 
   /** 
    *                     ,          
    */ 
   if (isFirstUse) { 
    startActivity(new Intent(Welcome.this, GuideActivity.class)); 
   } else { 
    startActivity(new Intent(Welcome.this, MainActivity.class)); 
   } 
   finish(); 
    
   //   Editor   
   Editor editor = preferences.edit(); 
   //     
   editor.putBoolean("isFirstUse", false); 
   //     
   editor.commit(); 
 
 
  } catch (InterruptedException e) { 
 
  } 
 } 
} 
환영 인터페이스 에서 Shared Preferences 를 사용 하여 사용자 의 정 보 를 읽 고 첫 번 째 프로그램 인지 아 닌 지 를 판단 합 니 다.이곳 의 is First Use 는 독자 의 수요 에 따라 임의의 유형 으로 바 꿀 수 있 습 니 다.판단 만 추가 하면 됩 니 다.
9.메 인 인터페이스 Activity,여기에 간단 한 레이아웃 파일 을 불 러 옵 니 다.독 자 는 필요 에 따라 이 종 류 를 확장 할 수 있 습 니 다.MainActivity.java:

package com.yangyu.myguideview04; 
 
import android.app.Activity; 
import android.os.Bundle; 
 
/** 
 * @author yangyu 
 *     :         
 */ 
public class MainActivity extends Activity { 
 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_main); 
 } 
  
} 
안내 인터페이스의 주 제 는 일 단락 되 었 습 니 다.다음은 홈 페이지 의 UI 디자인 을 주제 로 상세 한 실전 설명 을 할 것 입 니 다.이 시 리 즈 를 계속 지 켜 봐 주시 기 바 랍 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기