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 /
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 디자인 을 주제 로 상세 한 실전 설명 을 할 것 입 니 다.이 시 리 즈 를 계속 지 켜 봐 주시 기 바 랍 니 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.