'android'에 해당되는 글 27건

  1. Favorite - 안드로이드 커뮤니티(게시판, SNS)앱 만들기(오픈소스) (69)
  2. 안드로이드 개발 - 소프트키에서만 나타나는 Overflow메뉴 일반 기기에서도 활성화하기 (1)
  3. 안드로이드 개발 - 비트맵(Bitmap) 비율 맞추면서 크기 줄이기(썸네일 생성)
  4. 안드로이드 개발 - ImageView 다양한 표시 방법 android:scaleType
  5. 안드로이드 개발 - 파일(File) 유무 확인하기
  6. 안드로이드 개발 - 비트맵을 파일로 변환하기(Bitmap to file)
  7. 안드로이드 개발 - 설치시 이클립스 Timeout 오류 해결하기
  8. 안드로이드 개발 - 이클립스(Eclipse)가 휴대폰을 인식하지 못하는 경우
  9. 안드로이드 개발 - 연락처 선택/정보 가져오기(ACTION_PICK) (3)
  10. 안드로이드에서 검색을 효율적으로 하는 방법 - FastEngine 4.1

앱을 개발할때, 누구나 자신의 앱에 사용자들이 대화하거나, 공지사항으로 앱의 새소식을 알리고, 댓글을 달면 알림이 가는등 사용자가 참여할 수 있는 커뮤니티 공간이 있었으면 좋겠다고 생각해봤을 것입니다.


하지만 만드는 데에는 그만큼의 시간과 노력을 들여야 합니다. 에를들어 서버 구축이라든지, 서버에서 처리하는 코드라든지, 클라이언트 코드를 짜야하는거라든지..


이런 과정 없이 다른 프로그래밍이나 서버구축 같은거 없이 그럴듯한 아래 사진과 같은 앱을 최소한의 과정으로 제작할 수 있는 오픈소스 커뮤니티 클라이언트 프로젝트입니다.







Favorite - 안드로이드 커뮤니티(게시판, SNS)앱 만들기(오픈소스)



1. Favorite 앱





자신이 즐겨찾기한 페이지를 간단명료하게 보여주고 소통할수 있는 종합적인 어플리케이션입니다. 


페이지(커뮤니티)를 생성해  그룹이나, 소개용 등 목적에 따라서 다양하게 이용할 수 있습니다.

- 사진이나 파일 업로드가 가능하며 최대 30MB 업로드를 지원합니다.

- 나에게 글이나, 댓글 작성시 알림을 받을 수 있습니다.



Play 스토어에서 다운로드 가능하며, 오픈소스입니다.


Play Store : http://play.google.com/store/apps/details?id=com.tarks.favorite

Github : https://github.com/tarksgit/Favorite-Android-Client




2. Favorite Example





위의 Favorite을 여러분들이 쉽게 독립적인 어플로 만들기 쉽게 만든 데모 버전이며, 이 오픈소스를 어떻게 활용해야할지에 대한 하나의 적절한 예시입니다.


목록에서 자신이 의도한 페이지(커뮤니티)로 이동하게 하는 방법이 있습니다. 마찬가지로, 이 데모도 오픈소스입니다.


https://github.com/tarksgit/Favorite-Android-Client-Example


이 데모를 사용하여 자신만의 커뮤니티 앱을 만드는 더 자세한 방법은 아래 링크에 잘 설명되어있습니다.


http://tarks.net/favoritedevelop_android/105393







도움이 되셨나요?

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






저작자 표시 비영리 동일 조건 변경 허락
신고

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

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


그래서 소프트키가 있는 휴대폰은 상단에 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" />









도움이 되셨나요?

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

저작자 표시 비영리 동일 조건 변경 허락
신고

안드로이드 어플리케이션 개발 시 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 {
//파일이 없을시
}








도움이 되셨나요?

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

저작자 표시 비영리 동일 조건 변경 허락
신고

안드로이드에서 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로 지정해주시면 됩니다.


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

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

저작자 표시
신고
흔히 카카오톡 연락처 공유처럼 앱 개발시에 사용자가 직접 번호를 입력하는 불편함을 줄이기 위해서 연락처 선택 화면을 띄워야 하는 경우가 있습니다.



안드로이드 개발 - 연락처 선택/정보 가져오기(ACTION_PICK)

1. 버튼등 OnClickListener등에 넣어 연락처 선택 화면이 나오게 합니다.
Intent intent = new Intent(Intent.ACTION_PICK);
 intent.setData(ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
         startActivityForResult(intent, 0);


2. 연락처 선택을 하면 결과값을 받아옵니다.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK)
{
Cursor cursor = getContentResolver().query(data.getData(), 
new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
ContactsContract.CommonDataKinds.Phone.NUMBER}, null, null, null);
cursor.moveToFirst();
                  name = cursor.getString(0);        //0은 이름을 얻어옵니다.
           number = cursor.getString(1);   //1은 번호를 받아옵니다.
            cursor.close();
}
super.onActivityResult(requestCode, resultCode, data);
} 



참고한 사이트 : 
http://chonggi7.tistory.com/46



도움이 되셨나요?
그럼 손가락을 눌러주세요:)
 
저작자 표시
신고
시대가 발전하면서 이젠 언제 어디서나 스마트폰에서의 검색은 자유로워졌습니다.
하지만 컴퓨터에 비해 비교적 작은 스마트폰은, 사이트를 돌아다니며 자신이 원하는 검색 결과를 찾는데 제약을 받습니다.

 FastEngine을 사용하면 웹사이트를 옮겨다니는 과정 없이 한 번의 터치만으로 쉽게 여러 검색엔진 사이트에서 검색이 가능합니다.


다운로드
Play Store에서 다운로드 할 수 있습니다.

http://play.google.com/store/apps/details?id=com.tarks.fastengine

안드로이드에서 검색을 효율적으로 하는 방법 - FastEngine 4.1

앱 설치를 하고 실행을 하면 아래 사진과 검색 화면이 보입니다.
검색어를 입력한 뒤에 자신이 검색하기 원하는 사이트를 선택하세요.



아래와 같이 한번의 터치로 여러 사이트의 검색 결과를 확인할 수 있습니다.
 



다른 검색엔진(사이트) 추 또는 사이트 수정및 기타 기능의 안내는 아래 도움말 게시판에서 확인할 수 있습니다.
http://tarks.net/fastengine_help


FastEngine 사용 동영상은 이해를 도울 수 있습니다.
Fastengine 동영상 : 
http://www.youtube.com/watch?v=NzzVbA_lziE


FastEngine 4.1에서 새롭게 추가된 기능

1. "터치해서 입력" 기능 추가


Screen Shot 2013-09-07 at 오후 4.17.47.png 


원래는 목록에 있는 검색어를 클릭하면 바로 검색 화면으로 넘어갔습니다.

일반적인 검색이라면 크게 상관 없죠, 그런데 자신이 검색어를 수정하고 싶다면? 또는 그 검색어에 해당하는 추천 검색어를 보고 싶다면?


그래서 추가했습니다. 목록에 ">" 버튼을 클릭하면 검색 상자에 바로 해당되는 검색어가 입력됩니다.

더 신속하고 효율적으로 검색할 수 있습니다.




2. 테마(색상) 변경 기능 추가

기본 색상이 취향적으로 맞지 않거나,  특정 디스플레이에서 배터리 소모가 심할까봐 걱정되신다구요?

기본 색상 이외에도 6가지 색상의 테마가 준비되어 있습니다.


Screen Shot 2013-09-07 at 오후 4.29.56.png 




3. 버그 수정 및 기타 달라진 것들

1. 웹페이지 로딩 중 뒤로가기 버튼을 눌러서 앱 종료시 오류나는 버그 해결

2. 검색 상자 업그레이드됨(포커스, 검색어 기존 입력문제 해결됨)

3. 광고 시스템 변경




좋은 정보였나요?
그럼 손가락을 눌러주세요:)

저작자 표시
신고