[주소록]그룹 카운팅 하기

안드로이드/android 2012. 12. 10. 08:58

같은 이름으로 저장된 그룹을 하나의 그룹명으로 카운트하고

Data에 실질적으로 등록된 연락처 카운터를 한다.



// group

private HashMap<String, String> group_kr;

private HashMap<String, String> group_title;

private HashMap<String, Integer> group_count;

@Override

    public void onCreate(Bundle savedInstanceState){

        super.onCreate(savedInstanceState);

        setContentView(R.layout.phonebook);    

   

    group_title=new HashMap<String, String>();

    group_count=new HashMap<String, Integer>();

    getGroupContacts();


    }

private void getGroupContacts()

{

Uri uri_group = ContactsContract.Groups.CONTENT_SUMMARY_URI;

String[] group_projection = new String[]{

ContactsContract.Groups._ID,

ContactsContract.Groups.TITLE

};

String group_selection = ContactsContract.Groups.DELETED + " = 0 AND " + ContactsContract.Groups.GROUP_VISIBLE + " = 1";

String orderby = ContactsContract.Groups.TITLE+ " COLLATE LOCALIZED ASC";

   Cursor gc = managedQuery(uri_group, group_projection, group_selection, null,orderby);

   

   while(gc.moveToNext())

   {

    String gtitle=gc.getString(1);

    if(gtitle!=null && !gtitle.equals(""))

    {

    int people_count=0;


    String selection=ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID + "="+gc.getString(0);

//     String[] qry={ContactsContract.CommonDataKinds.GroupMembership.CONTACT_ID};

//     Cursor people_rlt = managedQuery(ContactsContract.Data.CONTENT_URI,qry, selection, null,null);//    

//     final int people_count = people_rlt.getCount();

//     Log.i("getGroupContacts",gc.getString(0)+" "+gc.getString(1)+" ("+people_count+")");

   

    Uri lookupUri = Uri.withAppendedPath(ContactsContract.Data.CONTENT_URI, "");

   Cursor is_c = getContentResolver().query(lookupUri, new String[]{ContactsContract.CommonDataKinds.GroupMembership.CONTACT_ID},selection,null,null);

   people_count=is_c.getCount();

   try {

    people_count=is_c.getCount();

   } catch (Exception e) {}

   finally{is_c.close();}

   

    if(group_title.get(gtitle)!=null)

    {

    int g_tcount = group_count.get(gtitle)+people_count;

    group_count.put(gtitle,g_tcount);

    }else{

    group_title.put(gtitle,gtitle);

    group_count.put(gtitle,people_count);

    }

    }

   }

   Log.i("Group list",group_count.toString());

}

레이아웃 (XML) 배경 투명도 조정하기

안드로이드/android 2012. 10. 5. 13:41

Layout 투명도 조정


background="AARRGGBB"


----------------------------

<90%>

background="#90000000"


<88%>

background="#88000000"


안드로이드 4.x에서 터치 이벤트 에러 발생시

안드로이드/android 2012. 8. 3. 10:13

java Error message

1. call to OpenGL ES API with no current context (logged once per thread)

2. NO_FAST_DRAW = false

3. singleCursorHandlerTouchEvent -getEditableSupport  FASLE  


Android 2.3 진저에서 잘 먹히던 이벤트가

Android 4.x 에서 위와 같이 3가 종류의 에러가 발생한다. 
정말이지 버전업 되면서 더 좋아지면서 기존의 소스 코드는 유지 할 수 있었음 좋겠다



< script language="javascript" type="text/javascript">
		document.addEventListener("touchstart", function(e) {
				//e.preventDefault();
				document.getElementById("logDiv").innerHTML = new Date().toString() + ": !touchstart";
		}, false);
		document.addEventListener("touchmove", function(e) {
				// Prevent page scroll:
				e.preventDefault();
				document.getElementById("logDiv").innerHTML = new Date().toString() + ": !touchmove" + e.touches[0].pageY;
		}, false);
		document.addEventListener("touchend", function(e) {
				document.getElementById("logDiv").innerHTML = new Date().toString() + ": !touchend";
		}, false);
		document.addEventListener("touchcancel", function(e) {
				document.getElementById("logDiv").innerHTML = new Date().toString() + ": !touchcancel";
		}, false);

< /script>

		
< div id="logDiv">< /div> 

       


안드로이드 프로그램 :: 동영상 파일에서 썸네일 이미지 추출하기

안드로이드/android 2012. 3. 16. 22:26

안드로이드 개발을 하다 보면
우리는 동영상 파일에서 썸네일 이미지를 추출 해야 할 때가 있다.

지원하지 않는다면 정말 멍멍이 고생 해야 하는데
덕분에 시간과 건강을 벌 수 있다

 
String[] videoFileList = {
   "/sdcard/Video/Android 2.0 Official Video_low.mp4",
   "/sdcard/Video/Android 2.2 Official Video_low.mp4"
 };

# Thumbnails.MICRO_KIND[작은 이미지 사이즈], Thumbnails.MINI_KIND[중간 이미지 사이즈]
Bitmap bmThumbnail;
bmThumbnail = ThumbnailUtils.createVideoThumbnail(videoFileList[0], Thumbnails.MICRO_KIND);

ImageView imageThumbnail = (ImageView)row.findViewById(R.id.Thumbnail);
imageThumbnail.setImageBitmap(bmThumbnail);

안드로이드 전원 버튼을 눌러서 화면을 끌때 내가 원하는 액션을 취해 보자

안드로이드/android 2012. 3. 16. 13:52
우리느 안드로이드 개발을 하다보면
원하던 원하지 않던 간에

하드웨어 이벤트가 일어날때 처리를 해줘야 할 때가 있습니다.

그 중의 하나가 전원 버튼 입니다.

동영상을 보고 있다가 갑자기
전원 버튼을 눌러 버렸을 경우 어떻게 처리 할 것인가 등을 결정 할때
유용하게 사용 할 수 있습니다.

@ java 소스 /======================
public class CameraPreview extends Activity 
{
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
	    
	    //전원버튼
            IntentFilter offfilter = new IntentFilter (Intent.ACTION_SCREEN_OFF);
            registerReceiver(screenoff, offfilter);
	}

        @Override
	public void onDestroy(){
		unregisterBroadcast();//전원버튼
	}

	//전원버튼
	private void unregisterBroadcast() {
		unregisterReceiver(screenoff);
	}
    
	BroadcastReceiver screenoff = new BroadcastReceiver(){
		public static final String Screenoff = "android.intent.action.SCREEN_OFF";
		
		@Override
		public void onReceive(Context context, Intent intent){
			if(!intent.getAction().equals(Screenoff))return;
    		
			// 여기에 전원 버튼을 눌렸을때 
			// 어떠한 일을 할건지 결정하면됩니다
    		}
	 };
}