'개발'에 해당되는 글 43건

  1. 안드로이드 개발 - 소프트키에서만 나타나는 Overflow메뉴 일반 기기에서도 활성화하기 1
  2. 안드로이드 개발 - 비트맵(Bitmap) 비율 맞추면서 크기 줄이기(썸네일 생성)
  3. PHP 개발 - 배열(array) 한줄로 출력하기
  4. PHP 개발 - 배열(array) 사용하기
  5. 안드로이드 개발 - ImageView 다양한 표시 방법 android:scaleType
  6. 안드로이드 개발 - 파일(File) 유무 확인하기
  7. PHP 개발 - 문자열(String) 합치기
  8. 안드로이드 개발 - 비트맵을 파일로 변환하기(Bitmap to file)
  9. 안드로이드 개발 - 설치시 이클립스 Timeout 오류 해결하기
  10. 안드로이드 개발 - 이클립스(Eclipse)가 휴대폰을 인식하지 못하는 경우

안드로이드 기기 버튼의 종류는 전면에 버튼이 없는 소프트키 기기와 메뉴, 홈, 뒤로가기 키 같이 하드웨어 키로 이루어진 경우로 나누어집니다.

근데 소프트키의 대부분은 하드웨어의 메뉴 버튼이 멀티태스킹 버튼으로 대체하기 때문에 메뉴 키가 따로 없습니다.


그래서 소프트키가 있는 휴대폰은 상단에 Overflow 메뉴가 나타납니다.(점 땡땡땡)





하지만 이 메뉴는 하드웨어키를 사용하는 기기에는 보이지 않습니다.


메뉴키가 하단에 이미 있기 때문에 크게 상관은 없지만 UI 일관성에는 별로 좋지 않습니다.




안드로이드 개발 - 소프트키에서만 나타나는 Overflow메뉴  일반 기기에서도 활성화하기



앱을 로드하는 맨 처음 액티비티에 몇줄의 코드에 삽입함으로써 이 문제를 해결할 수 있습니다.

일반 하드웨어키를 사용하는 기기에서도 소프트웨어 키를 사용하는 기기같이 상단에 Overflow 메뉴가 나타납니다.




  
	try {
	        ViewConfiguration config = ViewConfiguration.get(this);
	        Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
	        if(menuKeyField != null) {
	            menuKeyField.setAccessible(true);
	            menuKeyField.setBoolean(config, false);
	        }
	    } catch (Exception ex) {
	        // Ignore
	    }






도움이 되셨나요?

그럼 손가락을 눌러주세요:)

안드로이드에서 이미지 파일을 표시할때나,다룰때 파일 크기가 너무 커면 느려진다거나, 스크롤이 버벅이는등의 현상이 일어납니다.

크기가 작은 이미지 파일을 생성함으로써, 위의 문제를 어느정도 해결할 수 있습니다.


안드로이드 개발 - 비트맵(Bitmap) 비율 맞추면서 크기 줄이기(썸네일 생성)



  
	// Bitmap to File
//bitmap에는 비트맵, strFilePath에 는 파일을 저장할 경로, strFilePath 에는 파일 이름을 할당해주면 됩니다.
		public static void createThumbnail(Bitmap bitmap, String strFilePath,
				String filename) {
			
			File file = new File(strFilePath);

			// If no folders
			if (!file.exists()) {
				file.mkdirs();
				// Toast.makeText(this, "Success", Toast.LENGTH_SHORT).show();
			}
			File fileCacheItem = new File(strFilePath + filename);
			OutputStream out = null;
			



			try {
				
				int height=bitmap.getHeight();
				int width=bitmap.getWidth();
				
				
				fileCacheItem.createNewFile();
				out = new FileOutputStream(fileCacheItem);
//160 부분을 자신이 원하는 크기로 변경할 수 있습니다.
				bitmap = Bitmap.createScaledBitmap(bitmap, 160, height/(width/160), true);
				bitmap.compress(CompressFormat.JPEG, 100, out);
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				try {
					out.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}



위의 방법으로 하면 자신이 원하는 경로에 썸네일 파일을 생성할 수 있습니다.

Sdcard 경로에 저장하는 경우에는 아래 권한을 할당해 주어야 합니다.


   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />









도움이 되셨나요?

그럼 손가락을 눌러주세요:)

PHP 배열 있는 내용을 갯수에 상관없이 구분자를 사용하여 출력하는 방법입니다.


PHP 개발 - 배열(array) 한줄로 출력하기



1. 출력할 배열(Array)를 정의해줍니다.


$array = ("가나다", "라마바", "사아자");



2. implode 함수를 사용해서 출력합니다. ',' 부분은 구분자입니다. ','를 기준으로 배열을 출력합니다.


echo implode = implode(",", $array);



결과


가나다,라마바,사아자




도움이 되셨나요?

그럼 손가락을 눌러주세요.

배열(array) 요소는 개발하는데 있어서 자주 사용됩니다. 다른 언어와는 달리 PHP는 융통성이 좋기 때문에 간편하게 사용할 수 있습니다.


PHP 개발 - 배열(array) 사용하기



1. 배열 생성


$array = array("apple", "orange", "banana");


2. 배열 값 출력

$array[0]과 같은 방식으로 값을 출력할 수 있습니다.(0부터 시작)


echo $array[0].", ".$array[1].", ".$array[2];



결과 : apple, orange, banana







도움이 되셨나요?

그럼 손가락을 눌러주세요:)


안드로이드 어플리케이션 개발 시 ImageView를 많이 사용하는 경우가 많은데 android:scaleType 속성을 쓰면 이미지의 다양한 표시 효과를 나타낼 수 있습니다.(늘이기, 가운데 자르기 등)





안드로이드 개발 - ImageView 다양한 표시 방법 android:scaleType


Scaltype에는 8가지 종류가 있습니다.  


1. matrix(원본 그대로)


2. center(가운데 정렬)


3. centerCrop(비율을 유지하며 가운데를 중심으로 자른다.)


4. centerInside(비율을 유지하며 줄어듬)


5. fitStart(왼쪽 위 정렬/ 비율유지)


6. fitCenter(centerInside와 동일)


7. fitEnd(왼쪽 아래 정렬 / 비율유지)


8. fitXY(늘이기 ImageView를 비율에 상관없이 다 채웁니다.)



xml인 경우 속성값에 있는 값을  android:scaleType="값" 안에다 넣어주는 방식으로 하면 됩니다.

java 코드인 경우 imageView.setScaleType(ImageView.ScaleType.값); 으로 하면 됩니다.

자세한 것은 아래 표를 참조하세요

속성값

java

설명

matrix

setScaleType(ImageView.ScaleType.MATRIX)

원본 크기 그대로 보여줌 (왼쪽 상단 정렬)

Center

setScaleType(ImageView.ScaleType.CENTER)

원본 크기 그대로 보여줌 (가운데정렬)

centerCrop

setScaleType(ImageView.ScaleType.CENTER_CROP)

View 영역에 공백이 있으면 채워서 보여줌(비율유지)

centerInside

setScaleType(ImageView.ScaleType.CENTER_INSIDE)

View 영역을 벗어나면 맞춰서 보여줌(비율유지)

fitStart

setScaleType(ImageView.ScaleType.FIT_START)

View 영역에 맞게 보여줌 (왼쪽상단 정렬비율유지)

fitCenter

setScaleType(ImageView.ScaleType.FIT_CENTER)

View 영역에 맞게 보여줌 (가운데정렬비율유지)

fitEnd

setScaleType(ImageView.ScaleType.FIT_END)

View 영역에 맞게 보여줌 (왼쪽하단 정렬비율유지)

fitXY

setScaleType(ImageView.ScaleType.FIT_XY)

View 영역을 가득 채워서 보여줌(비율유지 안함)

(표 출처 : http://blog.naver.com/PostView.nhn?blogId=a1178626&logNo=150162250548)








도움이 되셨나요?

그럼 손가락을 눌러주세요:)

안드로이드 개발을 하다보면 Sdcard 또는 앱 데이타 폴더에 파일이 이미 있는지 확인해야 할 때가 있습니다. 간단한 코드로 파일의 유무를 쉽게 확인할 수 있습니다.


안드로이드 개발 - 파일(File) 유무 확인하기



  
//path 부분엔 파일 경로를 지정해주세요.
File files = new File(path);
      //파일 유무를 확인합니다.
 if(files.exists()==true) {
//파일이 있을시
} else {
//파일이 없을시
}








도움이 되셨나요?

그럼 손가락을 눌러주세요:)

무언가를 개발 시에 문자열을 합쳐야 할 경우가 꽤 많습니다. 자바(Java)및 다른 언어 같은 경우는 간편하게 "문자열" + "문자열" 이렇게 하면 되는데 PHP는 int와 String을 따로 정의하지 않기에 이렇게 하면 이상한 결과가 나옵니다.



PHP 개발 - 문자열(String) 합치기



PHP에서는 주로 문자열을 합칠때 '.'을 사용합니다.


$string = "문자열"."문자열";



위의 문자열 '$String'을 echo로 출력하게 하면 아래와 같이 출력됩니다.


문자열문자열








도움이 되셨나요?

그럼 손가락을 눌러주세요:)

안드로이드에서 Bitmap을 Sdcard 같은 저장장치에 파일로 저장할 필요성이 있을 때가 있습니다.

간단한 함수로 파일로 저장이 가능합니다.


안드로이드 개발 - 비트맵을 파일로 변환하기(Bitmap to file)


1. 아래와 같은 함수를 등록해줍니다.


 
// Bitmap to File
	public  void SaveBitmapToFileCache(Bitmap bitmap, String strFilePath,
			String filename) {

		File file = new File(strFilePath);

		// If no folders
		if (!file.exists()) {
			file.mkdirs();
			// Toast.makeText(this, "Success", Toast.LENGTH_SHORT).show();
		}

		File fileCacheItem = new File(strFilePath + filename);
		OutputStream out = null;

		try {
			fileCacheItem.createNewFile();
			out = new FileOutputStream(fileCacheItem);

			bitmap.compress(CompressFormat.JPEG, 100, out);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				out.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}



2. 함수를 호출할 때에는 아래와 같이 호출합니다.(bitmap에는 비트맵, strFilePath에는 파일 경로, filename에는 파일 이름으로 사용할할 문자열을 지정해주면 됩니다.


SaveFileToFileCache(bitmap, strFilePath, filename);






도움이 되셨나요?

그럼 손가락을 눌러주세요:)

안드로이드 어플리케이션 개발을 할 때 주로 이클립스를 자주 사용하는데요, 기기를 컴퓨터에 연결하여 작동시켜보는 방법으로 앱 테스트를 많이 합니다.

그런데 잘 작동하지 못하고 설치 도중에 아래 사진과 같이 'Fail too install... timeout' 이 뜨면서 설치가 되질 않습니다.




주로 APK의 용량이 크거나 테스트 폰이 저사양일 경우에 이런 현상이 일어나며, Timeout 시간 설정을 바꿔주는것으로 해결할 수 있습니다.



안드로이드 개발 - 설치시 이클립스 Timeout 오류 해결하기


1. 사과 옆의 이클립스 클릭후 > Preferences > Android > DDMS > ADB Connection time out (ms)의 숫자를 기존보다  5~10초(5000~10000)정도 더 늘려줍니다.

(윈도우의 경우에는 Window > Preferences > Android > DDMS > ADB Connection time out (ms)에서 하시면 됩니다.)





위 방법대로 하면 빌드가 잘 돼서 실행되는걸 볼 수 있습니다. 만약 안된다면 시간을 더 늘려보세요.








도움이 되셨나요?

그럼 손가락을 눌러주세요:)



실제 안드로이드 개발을 진행을 할때에는 주로 애뮬레이터보다는 실제 기기를 사용합니다. 그런데 이클립스가 기기를 인식 못하면 난감합니다.




안드로이드 개발 - 이클립스(Eclipse)가 휴대폰을 인식하지 못하는 경우


1. USB 디버 깅 
실제로 안되는 원인의 대다수는 개발자 설정의 USB 디버깅을 잊어먹고 키지 못한 경우입니다.
기초적인 내용이지만 실수할 때가 많습니다.
설정 -> 개발자 설정에서 USB 디버깅을 키면 해결됩니다.

 


2. ADB

(1)먼저 Android SDK Manager를 열어 업데이트를 시도해보세요.


(2) 윈도우인 경우 - 장치관리자를 열어 ADB 디바이스를 인식하는지 확인하세요.


인식하지 못한 디바이스가 있다면 오른쪽 클릭 -> 드라이버 업데이트 -> 자동으로 검색으로 안된다면 컴퓨터에서 드라이버 소프트웨어 찾아보기를 한후 경로를  Android SDK 폴더\extras\google\usb_driver로 지정해주시면 됩니다.


이렇게 하면 왠만한 문제는 거의 다 해결됩니다.

도움이 되셨나요?
그럼 손가락을 눌러주세요.