안드로이드를 개발하다보면, 어느 버튼에 대해 눌렀을때, 효과를 주고싶은 경우가 있다. 이를 구현하기 위해서는 selector를 이용하면된다. 속성 중 android:state_pressed="true"은 버튼이 눌렸을 때를 나타낸다. 즉, 디폴트로 btn_default이미지가 보이고 눌리게 되면, btn_selected이미지로 바뀌게 된다. 추가로, extendListview에서 눌렀을때 작은 tag이미지를 변경하기위해서는 android:state_pressed="true" 대신에 android:state_expanded="true" 를 써주면 된다.
Tab구현하기 1. 기본탭 구현하기 java public class MainActivity extends TabActivity { TabWidget widget; TabHost host; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); host = getTabHost(); widget = host.getTabWidget(); TabHost.TabSpec spec; spec = host.newTabSpec("Main"); spec.setContent(new Intent(this, First.class)); spec.setIndicator("Main", getIcon(android.R...
액티비티 상태 변화에 따라 호출되는 메소드(표) Method 상태변화 onCreate() onStart() onResume() onPause() onStop() onRestart() onDestroy() 액티비티 생성 액티비티 생성->일시정지 일시정지->활성 활성 -> 일시정지 일시정지 -> 정지 정지 -> 일시정지 정지 -> 액티비티 소멸 액티비티 상태 변화에 따라 호출되는 메소드(그림) onPause()가 호출되어 일시정지 상태가 되면, 시스템 메모리가 부족할 경우 액티비티가 강제종료될 가능성이 있다.onStop()가 호출되어 정지상태가 되면(액티비티가 화면에서 보이지 않게 될때), 시스템 메모리가 부족할 경우 일시정지 상태의 액티비티보다 강제로 종료될 확률이 더 높다. 위 메소드를 사용하면 안드로이..
스레드를 생성하는 두 가지 방법 Thread() : Thread()는 디폴트 생성자로 Thread객체를 생성한다. Thread(Runnable runnable) Thread 객체는 독립적으로 실행되는 실행흐름이 된다. Thread는 고유의 스택을 가지며, 기본 Thread와는 별도의 CPU시간을 할당받는다. 1. Thread상속받은 클래스를 이용해서 Thread시작 public class MainActivity extends Activity { int mCount = 0; TextView Count_tv; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ac..
스마트폰으로 이용할 수 있는 네트웍 접속 방법은 모바일네트웍, wifi, 블루투스, wibro 등이 있다. 자신의 모바일에서 이런 네트웍 상태를 알아보기위해서는 시스템서비스에서 ConnectivityManager(연결관리자)객체를 받아서 알아볼 수 있다. ConnectivityManager에서 모든 연결 방법에대한 정보를 한번에 구할 수 있고, 현재 액티브 상태인 연결 방법이나 특정타입의 연결 방법에 대한 정보만을 구할 수도 있다. ConnectivityManager의 중요 메소드 NetworkInfo[] getAllNetworkInfo() NetworkInfo getActiveNetworkInfo() NetworkInfo getNetworkInfo(int networkType) 위의 메소드들은 네트웟의..
안드로이드앱 개발을 하다보면, 폰 해상도에 따라 자신이 배치한 xml내 위젯들이 자신의 의도와는 다른 엉뚱한 곳에 위치할 때가 있다. 이를 해결하기 위해서는 자바클래스내에서 직접 해상도를 구해서 위젯의 위치, 크기를 정해야한다. 해상도구하기 public Display getDefaultDisplay() { Display defaultDisplay = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); return defaultDisplay; } //가로 : defaultDisplay.getWidth(); //세로 : defaultDisplay.getHeight();
안드로이드 앱개발을 하다보면 앱이 실행되기전에 미리 세팅해줘야 할 데이터가 있을때가 많다. 이를 위해서는 보통 로딩화면처럼 이미지를 띄워놓고 이미지가 띄워있는 사이에 데이터를 받은 후 데이터세팅이 되면 메인페이지로 넘어갈 수 있도록 한다. 이미지를 xml에서 띄워놓은 후에 thread를 돌려 데이터를 받는다. 데이터를 받은 후 thread에서 나와 다음 화면을 실행시켜주면된다. 대략적인 구성은 이렇다. protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_loading); Thread thread = new Thread(null, Run_ge..
프레프런스는 간단한 데이터를 영구적(앱이 종료되어도 유지)으로 저장할 때 사용되며, XML 포맷의 텍스트 파일에 정보를 저장한다. 형식) 프레프런스는 키와 값의 쌍으로 데이터를 저장한다. (키는 정보의 이름이며 값은 정보의 디폴트값이다.) 프레프런스 타입 int > getInt(String key, int defValue) String > getString(String key, String defValue) boolean > getBoolean(String key, boolean defValue) ... 프레프런스 클래스 자체에는 값을 읽는 메서드만 제공되며 값을 기록하는 메서드는 이너 클래스인 SharedPreferences.Editor가 제공한다. 예를 보면 어느정도 이해가 될 것이다. MainAct..
리스트뷰란? 항목들을 수직으로 펼쳐서 보여주는 위젯 안드로이드에서 제공하는 항목들 리소스 ID 설명 Simple_list_item_1 하나의 텍스트 뷰로 구성된 레이아웃 Simple_list_item_2 두 개의 텍스트 뷰로 구성된 레이아웃 Simple_list_item_checked 오른쪽에 체크 표시가 나타난다. Simple_list_item_single_choice 오른쪽에 라디오 버튼이 나타난다. Simple_lsit_item_multiple_choice 오른쪽에 체크 버튼이 나타난다. 위의 기본 레이아웃은 보기 좋지 않다. 항목마다 원하는 위젯을 추가하기위해서는 다음 방법을 사용하자. MainActivity.java public class MainActivity extends ListActivi..
안드로이드를 개발하다보면, 내 어플을 사용자 폰트가 아닌 나만의 폰트로 적용하고 싶을 때가 있다. 즉, 외부폰트를 안드로이드에 적용시키려면 어떻게 해야할까? public static void ApplyFonts(Context ct, TextView tv) { Typeface face = Typeface.createFromAsset(ct.getAssets(), "fonts/MYFONT.ttf"); tv.setTypeface(face); // 글씨체 적용 } assets폴더에 있는 MYFONTS.ttf를 이용해서 Typeface을 만든 후 원하는 항목에 적용해주면 된다. TIP ) 적용은 되지만, 속도가 엄청 느리다면?? apk생성과정에서 ttf파일이 압축되고, 이 압축된 파일을 불러오는데 시간이 소요되는 ..
- Total
- Today
- Yesterday