티스토리 툴바

블로그 이미지
그때의 이야기, 우리들의 소중한 꿈이 되었다. 밍공™

카테고리

분류 전체보기 (12)
소소한 일상 (0)
생각속으로.. (0)
읽은 책 (0)
세상 이야기 (0)
지름신 강림 (0)
페이퍼크래프트 (0)
정보 (0)
Android (11)
Total3,242
Today0
Yesterday2

'custom'에 해당되는 글 2건

  1. 2010/07/20 [Day6] Android Custom ToastView 소스
  2. 2010/07/06 custom TabView

TITLE : Android Custom ToastView

Date : 04/17/2010

Writen by Dayyoung

Description :

This is Source that make Custom ToastView by XML Inflator..

사용자 정의 ToastView 구현.

Download : customtoastview

일반적인 ToastView의 형태는 다음과 같다.

Toast.makeText(getApplicationContext(), “Hello!\nNomarl Test”, Toast.LENGTH_LONG).show();

명령으로 생성및 알림화면을 뛰우면서 debug/실시간에러 표시에도 활용된다.

1. 사용자정의 를 원하는 뷰의 배경을 그림판으로 제작합니다.

2. mytoast.xml 이라는 사용자정의 XML을 구성합니다. (레이아웃안에는 본인이 희망하는 뷰집합)

레이아웃과 텍스트의 ID 및 drawble에 그림판으로 제작한 이미지를 적용합니다.

3. 실시간으로 mytoast.xml파일을 인스턴스화 화며,

인스턴스화된 레이아웃을 역시 실시간으로 생성한 ToastView에 적용한다.

LayoutInflater inflater = getLayoutInflater();

//레이아웃을 뷰처럼 인스턴스화 시켜줄 인플래이터 호출

View layout = inflater.inflate(R.layout.mytoast,(ViewGroup)findViewById(R.id.my_toast_layout_root));

//레이아웃 생성

TextView text = (TextView)layout.findViewById(R.id.text);

text.setText(“경고! \n 안드로바이러스 침투!”);

//레이아웃에 소속된 textView 호출

Toast toast = new Toast(getApplicationContext());

//Toast 생성 인자값이 this가 아닌이유는 Toast생성을 액티비티가 아닌 버튼에서 하기 때문이다.

toast.setGravity(Gravity.CENTER, 0, 0);

toast.setDuration(3);

toast.setView(layout);

//Toast에 생성된 layout 적용

toast.show();

//토스트 화면 전환

<View를 Custom하기위한 일반사항>

1. View는 Layout이고 Layout은 View 이다.

말이 좀 이상한데. . 안드로이드 라이브러리에서는 두개를 동일한 요소로 보고있습니다.

Layout은 Android XML로 사용자가 위치를 조정하는 역할을 하는건데 . .머가 같은지 모르겠지만

즉, Layout을 쓸때도 View처럼 쓸 수 있다는 거라네요. 컴퍼지트 패턴이 적용됫다고 합니다..

컴포지트 패턴(Composite Pattern) : 컴포지트 패턴을 이용하면 객체들을 트리 구조로 구성하여 부분과 전체를 나타내는 계층구조로 만들 수 있습니다. 이 패턴을 이용하면 클라이언트에서 개별 객체와 다른 객체들로 구성된 복합 객체(Composite)를 똑같은 방법으로 다룰 수 있습니다.

2. 일반적으로 View를 사용자정의 할 때에는 아답터패턴이 쓰인다.

토스트뷰에서는 아답터패턴이 쓰이지 않은 단순한 경우이지만 대부분의 사용자정의 뷰를 만들때는 아답터패턴이 쓰임.

어댑터 패턴(Adapter Pattern) : 한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환합니다. 어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있습니다.

[출처] 객체지향 디자인 패턴 – head first design pattern 요약|작성자 오사마
Creative Commons License
이 저작물은 크리에이티브 커먼즈 저작자표시 3.0 Unported 라이선스에 따라 이용할 수 있습니다.

저작자 표시
Posted by 훈남, 밍공™

댓글을 달아 주세요

custom TabView

Android / 2010/07/06 18:15

.xml

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content">

 <ImageView android:id="@+id/IVIcon"
  android:src="@drawable/icon"
  android:layout_width="wrap_content"
  android:layout_gravity="center"/>
 
 <TextView android:id="@+id/TVCaption"
  android:text="Caption"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center"/>
</LinearLayout>

 

 

.java

 

TabHost tabHost = (TabHost) findViewById(R.id.tabHost);

// TabHost를 findViewById로 생성한 후 Tab추가 전에 꼭 실행해 주어야 함.
tabHost.setup();

// 새로운 Tab을 생성하기 위한 Tab객체 생성
TabHost.TabSpec spec;

// Custom View for TabWidget
LayoutInFlater layout = getLayoutInglater();

// 첫번째 Tab 설정 및 등록
spec = tabHost.newTabSpec("Tab 00");
// 새 Tab생성
View vTab1 = layout.inflate(R.layout.mytabwidget, null);
TextView tvCaption = (TextView) vTab1.findViewById(R.id.TVCaption);
tvCaption.setText("Custom Tab 1");
spec.setIndicator(vTab1);

// Tab 제목
spec.setContent(R.id.layout);
// Tab 내용
tabHost.addTab(spec);

//생성 된 Tab등록
// 두번째 Tab 설정 및 등록

 

저작자 표시
Posted by 훈남, 밍공™

댓글을 달아 주세요

최근에 달린 댓글

최근에 받은 트랙백

글 보관함