안드로이드 애뮬레이터 실행시 발생하는 오류입니다.
경로 중간에 빈공간이나 한글등이 들어가면 생기는 오류입니다.
다시 설치하는 방법이 있으나 링크로 해결하는 방법이 있습니다.

C:>MKLINK /j C:\Android "C:\Program Files\Android\android-sdk\"


참고 사이트
http://www.androidpub.com/1644488
 
블로그 이미지

초프 초프(초보 프로그래머)

yoonhg2002@gmail.com

댓글을 달아 주세요

NHN인턴을 지원하면서 작성하게 된 흐름도와 순서도



 
 
블로그 이미지

초프 초프(초보 프로그래머)

yoonhg2002@gmail.com

댓글을 달아 주세요

  • 2011.05.20 17:09  댓글주소  수정/삭제  댓글쓰기

    실행할때 나의 도서관정보를 얻어오는 방식이 인터넷방식인가요?
    메모리 방식으로 바꺼주시면 감사하겠습니다.
    3g와 와이파이만 끄고 들어가도 나의 도서관 리스트 는 보이게 해주셔야지 데이터용량도 적게 든다고 봅니다.
    지금 쓰는 방법은 키자마자 정보를 무조건 받아오는 방식 인것 같은데 그러면 데이터를 받게됩니다.
    하지만 메모리에 나의 도서관을 저장해두면 불필요한 데이터를 쓸일이 없겠지요.

    실행->서버에 접속 나의도서관 정보 받아오기->있으면 출력->클릭시 도서관 좌석표가져오기
    이방식은 2번의 접속입니다만.
    실행->메모리에 나의 도서관이 있는가? -> 있으면 바로 목록 출력->클릭시 도서관 좌석표 가져오기
    이방식은 1번만 접속하니 더 효율적이라고 생각되네요.

    • BlogIcon 초프 초프(초보 프로그래머) 2011.05.20 19:56 신고  댓글주소  수정/삭제

      이전에 그런 방식을 사용했었습니다. 정보가 변경되어도 업데이트되지 못해 오류가 생겼습니다. 그래서 지금 버전을 사용하고 있습니다. 새로운 아이디어가 떠올라 새로운 작업을 통해 데이터븀 통신을 적게 하도록 변경해 보겠습니다

  • 2011.05.23 19:09  댓글주소  수정/삭제  댓글쓰기

    오늘 속도 테스트해보니 도서관정보 불러오는데 4초정도 도서관 좌석표 불러오는데 1초도 안걸렸습니다.
    도서관 좌석표사용하는 사람들이 많다면 트래픽초과로 더느려질수도있으니.. 빠른해결부탁드립니다.
    http://175.125.92.193/library/library_by_number.php?number=도서관코드 들어가보니 xml 방식이더군요.
    xml db를 sd카드로 옮기는방식이 오류가 난다고하시니. .빠른해결부탁드립니다.^^(어플 잘사용하고있어요.)

    • BlogIcon 초프 초프(초보 프로그래머) 2011.05.24 12:29 신고  댓글주소  수정/삭제

      뭔가 관련 전공자이신것 같군요;
      도서관 정보를 읽어오는 과정이 현재 잘못된 방식을 사용하고 있어 도서관에 따라서 시간 차이가 많이 나고 있습니다. 2.0.0 버전에서는 그런 문제점을 해결할 예정입니다.

  • 2011.08.03 03:38  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다


오호~ 아이폰 버전까지 이어 가자~!
 
블로그 이미지

초프 초프(초보 프로그래머)

yoonhg2002@gmail.com

댓글을 달아 주세요

중앙인 홈페이지가 개편되면서 파싱을 해오지 못해서 모든 기능들이 동작하지 못하였습니다.

복구 작업을 진행하여 기존의 모든 기능들을 다시 사용할 수 있게 되었습니다.

사용자 분들이 주의해야할 한 가지는 통합 아이디로 로그인하셔야 한다는 것입니다.
 
 
블로그 이미지

초프 초프(초보 프로그래머)

yoonhg2002@gmail.com

댓글을 달아 주세요

개발 시작하고 11개월쯤 되니 추천 어플리케이션에 올랐군요.... ㅜ.ㅜ

너무 기쁩니다. 엉엉

 

 
블로그 이미지

초프 초프(초보 프로그래머)

yoonhg2002@gmail.com

댓글을 달아 주세요

코드로 TextView의 글자 크기를 변경하였습니다.
테스트는 HVGA 에뮬레이터와 안드로원 이었습니다.
글자 크기를 +1, -1 적용하는데 문제 없었습니다.
하지만 오류 보고 계속 왔죠. 글자 크기 조정이 제대로 안된다고..
특히 -1은 작아지는 것이 아니라 더 커진다고..
확인해 보니 WVGA에서는 계산한데로 제대로 적용되지 않고 있었습니다.
어떻게 해보아도 제대로 되지 않았는데 찾아 보니 setTextSize 는 2개의 메소드가 있더군요.
기본적으로 쓰는 것을 말고 단위를 선택하는 메소드가 있습니다.


TypedValue 값을 이용하여 단위를 정할 수 있습니다.


TypedValue.COMPLEX_UNIT_PX 가 pixel 단위를 나타냅니다.

그러므로 우리가 코드에서 크기를 변경할때 pixel 단위를 사용한다면 이것을 사용하여야죠.

textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);

 
블로그 이미지

초프 초프(초보 프로그래머)

yoonhg2002@gmail.com

댓글을 달아 주세요

많은 버그로 인해서 다운그레이드 작업을 진행하였습니다.

1.0.0 버전에 있던 설정을 가져와 적용하였습니다.

1.1.0 에 맞게 수정되었습니다.

글을 오래 누르면 나오는 메뉴와 메뉴 버튼을 누르면 나오는 메뉴를 통합하였습니다.

인코딩을 선택할때 예전보다 더 많은 글이 나오도록 하였습니다.






 
블로그 이미지

초프 초프(초보 프로그래머)

yoonhg2002@gmail.com

댓글을 달아 주세요

안드로원을 테스트폰으로 사용하고 있습니다.

안드로원이 2.2로 업데이트된 이후로 smoothScrollTo 가 적용되지 않습니다.

이유는 알 수 없으나 검색을 통해 해결 방법을 찾아 냈습니다.

	scrollView.post(new Runnable(){
				public void run() {
	            	scrollView.scrollTo(x, y);
				}
            });

 
블로그 이미지

초프 초프(초보 프로그래머)

yoonhg2002@gmail.com

댓글을 달아 주세요

onPrepareDialogBuilder 는 Dialog 가 보여지기 전에 실행되는 메소드 입니다.

DialogPreference 에 존재하고 있으며 AlertDialog.Builder 를 만들고 설정 후에 onPrepareDialogBuilder로 넘겨 줍니다.

이 받은 Builder는 아마도... 그냥 객체만 생성된 것 같습니다. 메소드를 비워두면 아무것도 안 뜨는 것을 알 수 있습니다.



	

package android.test;

import android.app.AlertDialog;
import android.content.Context;
import android.preference.ListPreference;
import android.util.AttributeSet;

public class ColorListPreference extends ListPreference {

	public ColorListPreference(Context context, AttributeSet attrs) {
		super(context, attrs);
	}
	
	public void onPrepareDialogBuilder(AlertDialog.Builder builder){
		
	}
}



넘겨 받은 Builder 에는 XML에서 지정한 제목만 들어갔네요. 아... 그런데 버튼이.. 원래 이런 스타일이 아니었죠!

버튼이 하나였던것 같은데.... 이걸 직접 수정할 수 있지만...

부모의 메소드를 실행해 보겠습니다.

	public void onPrepareDialogBuilder(AlertDialog.Builder builder){
		super.onPrepareDialogBuilder(builder);
	}

어라 이게 원했던 스타일이죠! 아... 그런데 리스트에 있는 값들이 맘에 안드네요....

원래 부터 저걸 바꾸기로 한거였는데... 이제 다시 원점이군요.

상위 메소드를 실행해서 저런 스타일을 가지는 builder가 만들어 졌습니다. 그럼 이제 그 builder 로 리스트의 값만 바꿔주면 끝입니다!!!



	
		
	
	
	

import java.util.ArrayList;
import java.util.List;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.preference.ListPreference;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class ColorListPreference extends ListPreference {

	public ColorListPreference(Context context, AttributeSet attrs) {
		super(context, attrs);
	}
	
	public void onPrepareDialogBuilder(AlertDialog.Builder builder){
		super.onPrepareDialogBuilder(builder);
		builder.setAdapter(new ColorListAdapter(getContext(),R.layout.color_list_preference_row,getEntriesList()), new OnClickListener(){
			public void onClick(DialogInterface dialog, int which) {
				Log.i("yViewer","click item : "+which);
				setValue(getEntryValues()[which].toString());
				dialog.dismiss();
			}
		});
	}
	
	private ArrayList getEntriesList(){
		ArrayList list = new ArrayList();
		CharSequence[] array = getEntries();
		
		for(CharSequence name : array){
			list.add(name.toString());
		}
		
		return list;
	}
	
	private class ColorListAdapter extends ArrayAdapter{
		private ColorString rgb;
		
		public ColorListAdapter(Context context, int resource, List objects) {
			super(context, resource, objects);
			rgb = new ColorString();
		}
		
		public View getView(int position, View view, ViewGroup parent){
			LayoutInflater vi = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
			String name = (String) ColorListPreference.this.getEntries()[position];
			String value = (String) ColorListPreference.this.getEntryValues()[position];
			
			view = vi.inflate(R.layout.color_list_preference_row, null);
			
			View colorView = view.findViewById(R.id.color);
			TextView nameView = (TextView) view.findViewById(R.id.name);
			Log.i("yViewer",value);
			colorView.setBackgroundColor(rgb.toRGB(value));
			nameView.setText(name);
			nameView.setTextColor(rgb.toRGB(value));
			
			return view;
		}
	}
}


오호!! 원하는데로 나오는 군요!! 

그런데... 이게 뭔가요.... 클릭해도 저장이 안되네요? 값 저장을 처리해야 할까요?

음... 기본으로 되어 있는데 괜히 건드리고 싶지는 않군요

검색을 통해서 알아보니 체크가 되는 리스트뷰 항목을 만들려면 각 항목의 최상위 뷰가 Clickable을 구현해야 한다고 합니다.

결국 새로운 뷰를 하나 만들어야 한다고 합니다.

늦었으니 그건 다음에... ^^;
 
블로그 이미지

초프 초프(초보 프로그래머)

yoonhg2002@gmail.com

댓글을 달아 주세요

안드로이드 뷰에서 색상을 지정하려면 drawable, resource, rgb 값이어야 합니다. 

일단 drawable, resource는 아닙니다. 그럼 int형인 rgb값을 지정해야 합니다.

int형 rgb값은 Color.rgb(int r, int g, int b) 로 얻을 수 있습니다. 

r,g,b 값을 따로따로 int형으로 줘야 합니다. 우리가 가지고 있는 16진수 문자열인데.... 

Integer.parseInt()로 변환도 안되고... 직접 만들어야 겠습니다!

import java.util.Hashtable;

import android.graphics.Color;

public class ColorString {
	private Hashtable hexTable = null;
	
	public ColorString(){
		hexTable = new Hashtable();
		hexTable.put('0', 0);
		hexTable.put('1', 1);
		hexTable.put('2', 2);
		hexTable.put('3', 3);
		hexTable.put('4', 4);
		hexTable.put('5', 5);
		hexTable.put('6', 6);
		hexTable.put('7', 7);
		hexTable.put('8', 8);
		hexTable.put('9', 9);
		hexTable.put('A', 10);
		hexTable.put('B', 11);
		hexTable.put('C', 12);
		hexTable.put('D', 13);
		hexTable.put('E', 14);
		hexTable.put('F', 15);
	}
	
	public int toRGB(String color){
		String strR = color.substring(1, 3);
		String strG = color.substring(3, 5);
		String strB = color.substring(5);
		
		return Color.rgb(getHexValue(strR), getHexValue(strG), getHexValue(strB));
	}
	
	private int getHexValue(String num){
		return hexTable.get(num.charAt(0)) * 15 + hexTable.get(num.charAt(1)); 
	}
}
hashtable을 안 써도 되긴 하지만.... 그리고 static이 더 편할 수도 있지만....

그냥 만들다 보니 이렇게 됐네요 ㅋ
 
블로그 이미지

초프 초프(초보 프로그래머)

yoonhg2002@gmail.com

댓글을 달아 주세요