Android 개발 실례 로그 인 인터페이스의 실현

본 고 에서 보 여줄 안 드 로 이 드 개발 실례 는 어떻게 안 드 로 이 드 의 미니 트 위 터 로그 인 인 인 터 페 이 스 를 완성 하 는 지 입 니 다.다음은 그림 의 인터페이스 효 과 를 어떻게 실현 하 는 지 단계별 로 설명 하여 모두 가 쉽게 아름 다운 로그 인 인 인 터 페 이 스 를 만 들 수 있 도록 합 니 다.
       miniTwitter 로그 인 인터페이스 효과 도
       최종 완성 할 효과 도 를 먼저 붙 입 니 다:

       miniTwitter 로그 인 인터페이스의 레이아웃 분석
       먼저 인터페이스 그림 에서 구 조 를 분석 하고 대체적으로 세 부분 으로 나 눌 수 있 으 며 다음은 각 부분 을 설명 한다.
       첫 번 째 부분 은 그 라 데 이 션 배경 을 가 진 LinearLayout 레이아웃 입 니 다.배경 그 라 데 이 션 색 에 대해 코드 를 붙 이지 않 습 니 다.효 과 는 다음 그림 과 같 습 니 다.

       두 번 째 부분 은 빨간색 선 구역 내 에 1,2,3,4 를 포함한다.  그림 에서 보 듯 이:

       빨간색 1 은 원 각 이 있 고 배경 색 이\#55FFFFFF(옅 은 파란색)인 RelativeLayout 레이아웃 을 표시 합 니 다.코드 는 다음 과 같 습 니 다.
XML/HTML 코드

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#55FFFFFF" /> 
    <!--       
      :    bottomRightRadius           bottomLeftRadius   --> 
    <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" 
        android:bottomRightRadius="10dp" android:bottomLeftRadius="10dp"/> 
</shape> 
solid 는 충전 색 을 나타 내 는데 여 기 는 옅 은 파란색 으로 채 워 져 있 습 니 다.corners 는 원 각 을 설정 합 니 다.
       dp(즉 dip,device independent pixels)장치 독립 픽 셀:이것 은 장치 하드웨어 와 관련 이 있 습 니 다.일반적으로 우 리 는 WVGA,HVGA 와 QVGA 를 지원 하기 위해 픽 셀 에 의존 하지 않 습 니 다.안 드 로 이 드 에서 개 발 된 프로그램 은 해상도 가 다른 휴대 전화 에서 실 행 될 것 이다.프로그램의 외관 이 크게 다 르 지 않도록 dip 개념 을 도입 했다.예 를 들 어 사각형 10 x 10dip 를 정의 합 니 다.해상도 가 160 dpi 인 화면 에서 예 를 들 어 G1 은 바로 10 x 10 픽 셀 입 니 다.240 dpi 화면 에 서 는 15 x 15 픽 셀 이다.환산 공식 은 pixs=dips*(density/160)이다.density 는 화면의 해상도 입 니 다.
       그리고 RelativeLayou 의 background 는 이 drawable 을 참조 합 니 다.구체 적 인 RelativeLayout 설정 은 다음 과 같 습 니 다.
XML/HTML 코드

<RelativeLayout 
     android:id="@+id/login_div" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:padding="15dip" 
     android:layout_margin="15dip" 
     android:background="@drawable/background_login_div_bg" 
     > 
</RelativeLayout> 
       padding 은 내부 여백(즉 내용 과 테두리 의 거 리 를 말 함),layotmargin 은 바깥쪽 거리 입 니 다.
       다음은 지역 2 입 니 다.계 정의 텍스트 와 입력 상자 입 니 다.먼저 계 정의 텍스트 입 니 다.코드 는 다음 과 같 습 니 다.
XML/HTML 코드

<TextView 
    android:id="@+id/login_user_input" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="5dp" 
    android:text="@string/login_label_username" 
    style="@style/normalText"/> 
       android:layout_alignParent Top 은 이 TextView 의 위 치 를 맨 위 에 표시 합 니 다.
       android:layout_marginTop="5dp"이 TextView 의 테두리 와 RelativeLayout 의 상단 테두리 거 리 는 5dp 임 을 표시 합 니 다.
       이 TextView 에 글꼴 색상 과 글꼴 크기 를 설정 하고 res/style.xml 에 정의 해 야 합 니 다.
XML/HTML 코드

<style name="normalText" parent="@android:style/TextAppearance"> 
    <item name="android:textColor">#444</item> 
    <item name="android:textSize">14sp</item> 
</style> 
         계 정의 입력 상 자 를 정의 합 니 다.다음 과 같 습 니 다.
XML/HTML 코드

<EditText 
    android:id="@+id/username_edit" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:hint="@string/login_username_hint" 
    android:layout_below="@id/login_user_input" 
    android:singleLine="true" 
    android:inputType="text"/> 
 android:hint 입력 상자 에 있 는 알림 텍스트,android:layotbelow 여 기 는 계 정의 텍스트 상자 아래 에 설정 되 어 있 습 니 다.android:singleLine 은 한 줄 로 입력 합 니 다.(즉,리 턴 을 입력 할 때 줄 을 바 꾸 지 않 습 니 다)android:input Type 여 기 는 text 가 입력 한 형식 을 텍스트 로 표시 합 니 다.
       영역 3 은 암호 텍스트 와 입력 상자 입 니 다.같은 영역 2,코드 는 다음 과 같 습 니 다.
XML/HTML 코드

<TextView 
   android:id="@+id/login_password_input" 
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:layout_below="@id/username_edit" 
   android:layout_marginTop="3dp" 
   android:text="@string/login_label_password" 
   style="@style/normalText"/> 
<EditText 
   android:id="@+id/password_edit" 
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   android:layout_below="@id/login_password_input" 
   android:password="true" 
   android:singleLine="true" 
   android:inputType="textPassword" 
/> 
            영역 4,로그 인 버튼:
XML/HTML 코드

<Button 
   android:id="@+id/signin_button" 
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:layout_below="@id/password_edit" 
   android:layout_alignRight="@id/password_edit" 
   android:text="@string/login_label_signin" 
   android:background="@drawable/blue_button" 
/> 
       세 번 째 부분:아래 의 문자 와 두 장의 그림 은 각각 1,2,3,4 를 표시 했다.

    지역 1:RelativeLayout 입 니 다.하지만 여기 설정 은 간단 합 니 다.코드 는 다음 과 같 습 니 다.
XML/HTML 코드

<RelativeLayout 
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content"> 
</RelativeLayout> 
 구역 2:"계 정 없어 요?"등록"이 몇 개의 문 자 는 string 에 정의 되 어 있 으 며,탭 을 포함 하고 있 습 니 다.XML/HTML 코드계 정 이 없 습 니까?등록  
       정 의 는 다음 과 같 습 니 다.
XML/HTML 코드

<TextView android:id="@+id/register_link" 
  android:text="@string/login_register_link" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  android:layout_marginLeft="15dp" 
  android:textColor="#888" 
  android:textColorLink="#FF0066CC" 
/> 
TextView 는 간단 한 html 라벨 을 지원 합 니 다.예 를 들 어라벨 은 모든 라벨 을 지원 하 는 것 이 아니 라 더 복잡 한 html 라벨 을 지원 하려 면 webView 구성 요 소 를 사용 해 야 합 니 다.       android:textColorLink 는 텍스트 링크 를 설정 하 는 색 입 니 다.TextView 는탭 을 지원 하지만 이 링크 를 누 를 수 없습니다.가상 에 현혹 되 지 마 십시오.       지역 3 은 계속 고양이 의 캐릭터 사진 입 니 다.좀 못 생 긴 것 같 습 니 다.내 려 오 세 요.XML/HTML 코드 <ImageView android:id="@+id/miniTwitter_logo" android:src="@drawable/cat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentBottom="true" android:layout_marginRight="25dp" android:layout_marginLeft="10dp" android:layout_marginBottom="25dp" />        android:layout_alignParentRight="true"는 layot 의 맨 오른쪽 에 있 습 니 다.       android:layout_alignParentBottom="true"  레이아웃 의 맨 밑 에 있 음       android:layout_marginRight="25dp"  이 imageView 의 테두리 거 리 는 layot 테두리 에서 25dp 이 고 다른 margin 은 유사 합 니 다.       영역 4 는 텍스트 가 있 는 그림 의 ImageView 입 니 다.XML/HTML 코드 <ImageView android:src="@drawable/logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/miniTwitter_logo" android:layout_alignBottom="@id/miniTwitter_logo" android:paddingBottom="8dp" />        android:layout_toLeftOf="@id/miniTwitter_logo"  그 고양이 ImageView 왼쪽(수평 위치)       android:layout_alignBottom="@id/miniTwitter_logo"  이 두 이미지 뷰(영역 3 과 영역 4)아래 가장자리 정렬       android:paddingBottom="8dp"  그림 은 ImageView 아래쪽 테두리 8dp,즉 그림 위 에 8dp 를 올 리 는 것 입 니 다.       미니 트 위 터 로그 인 인터페이스의 구체 적 인 절 차 를 실현 하 다       구체 적 인 절 차 는 다음 과 같다.       첫 번 째 단계:일부 문자열 정의       /miniTwitterLoginDemo/res/values/strings.xmlXML/HTML 코드 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, LoginActivity!</string> <string name="login_label_username">계 정</string> <string name="login_label_password">비밀번호</string> <string name="login_label_signin">로그 인</string> <string name="login_status_logging_in">로그 인 중...</string> <string name="login_username_hint">이메일 또는 핸드폰 번호</string> <string name="login_register_링크">계 정 이 없 습 니까?<a href="#" mce_href="\#">등록</a></string> <string name="app_name">miniTwitter</string> </resources> 두 번 째 단계:       /miniTwitterLoginDemo/res/values/style.xmlXML/HTML 코드 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="normalText" parent="@android:style/TextAppearance"> <item name="android:textColor">#444</item> <item name="android:textSize">14sp</item> </style> </resources>  STEP 3:배경 색 은 그 라 데 이 션 색       /miniTwitterLoginDemo/res/drawable-mdpi/background_login.xmlXML/HTML 코드 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:startColor="#FFACDAE5" android:endColor="#FF72CAE1" android:angle="45" /> </shape>  STEP 4:배경 색 은 옅 은 파란색 이 고 원 각 이다.       /miniTwitterLoginDemo/res/drawable-mdpi/background_login_div_bg.xmlXML/HTML 코드 <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#55FFFFFF" /> <!-- 원 각 설정 메모:bottomRightRadius 는 오른쪽 아래 가 아 닌 왼쪽 아래 입 니 다.bottom Left Radius 오른쪽 아래--> <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomRightRadius="10dp" android:bottomLeftRadius="10dp"/> </shape>  다섯 번 째 단계:       /miniTwitterLoginDemo/res/layout/login.xmlXML/HTML 코드 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/background_login"> <!-- padding 내 여백 layoutmargin 외곽 거리 android:layout_alignParentTop 레이아웃 의 위치 가 맨 위 에 있 는 지--> <RelativeLayout android:id="@+id/login_div" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="15dip" android:layout_margin="15dip" android:background="@drawable/background_login_div_bg" > <!-- 계 정--> <TextView android:id="@+id/login_user_input" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginTop="5dp" android:text="@string/login_label_username" style="@style/normalText"/> <EditText android:id="@+id/username_edit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/login_username_hint" android:layout_below="@id/login_user_input" android:singleLine="true" android:inputType="text"/> <!-- 암호 텍스트--> <TextView android:id="@+id/login_password_input" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/username_edit" android:layout_marginTop="3dp" android:text="@string/login_label_password" style="@style/normalText"/> <EditText android:id="@+id/password_edit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/login_password_input" android:password="true" android:singleLine="true" android:inputType="textPassword" /> <!-- 로그 인 버튼--> <Button android:id="@+id/signin_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/password_edit" android:layout_alignRight="@id/password_edit" android:text="@string/login_label_signin" android:background="@drawable/blue_button" /> </RelativeLayout> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/register_link" android:text="@string/login_register_link" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:textColor="#888" android:textColorLink="#FF0066CC" /> <ImageView android:id="@+id/miniTwitter_logo" android:src="@drawable/cat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentBottom="true" android:layout_marginRight="25dp" android:layout_marginLeft="10dp" android:layout_marginBottom="25dp" /> <ImageView android:src="@drawable/logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/miniTwitter_logo" android:layout_alignBottom="@id/miniTwitter_logo" android:paddingBottom="8dp" /> </RelativeLayout> </LinearLayout>   일곱 번 째 단계:       /miniTwitterLoginDemo/src/com/mytwitter/acitivity/LoginActivity.java       여기 서 주의해 야 할 것 은 이 Activity 는 제목 이 없 는 것 입 니 다.제목 이 없 는 것 을 설정 하려 면 setContentView 전에 설정 해 야 합 니 다.그렇지 않 으 면 오류 가 발생 할 수 있 습 니 다.자바 코드 package com.mytwitter.acitivity; import android.app.Activity; import android.os.Bundle; import android.view.Window; public class LoginActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.login); } }  여기까지 안 드 로 이 드 의 미니 트 위 터 로그 인 인터페이스 제작 에 대한 소개 가 끝 났 습 니 다.좋 은 로그 인 인터페이스 를 만 드 는 것 은 어렵 지 않 습 니까?이상 은 안 드 로 이 드 로그 인 인터페이스 에 대한 개발 예제 입 니 다.안 드 로 이 드 애플 리 케 이 션 을 개발 하 는 친구 들 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 지원 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기