public class HelloGallery extends Activity {
public final static int ADDED_EXTRA = 6;
public final static Integer[] mImageIds = {
R.drawable.sample_1,
R.drawable.sample_2,
R.drawable.sample_3,
R.drawable.sample_4,
R.drawable.sample_5,
R.drawable.sample_6,
R.drawable.sample_7
};
Gallery g;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
g = (Gallery) findViewById(R.id.gallery);
g.setAdapter(new ImageAdapter(this));
g.setOnItemSelectedListener(new OnItemSelectedListener(){
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
if (position < ADDED_EXTRA / 2)
g.setSelection(mImageIds.length + 2, false);
if (position > mImageIds.length + ADDED_EXTRA / 2) {
g.setSelection(4, false);
}
}
public void onNothingSelected(AdapterView<?> parent) {
g.setSelection(3, false);
}
});
g.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
if (position < ADDED_EXTRA / 2) {
position = mImageIds.length- (ADDED_EXTRA / 2 - position);
} else if (position >= (mImageIds.length + (ADDED_EXTRA / 2))) {
position = position - (mImageIds.length + (ADDED_EXTRA / 2));
} else {
position -= (ADDED_EXTRA / 2);
}
Toast.makeText(HelloGallery.this, "position: " + position, Toast.LENGTH_SHORT).show();
}
});
}
public class ImageAdapter extends BaseAdapter {
int mGalleryItemBackground;
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
// TypedArray a = obtainStyledAttributes(R.styleable.Gallery1);
// mGalleryItemBackground = a.getResourceId(
// R.styleable.Gallery1_android_galleryItemBackground, 0);
// a.recycle();
}
public int getCount() {
return mImageIds.length + ADDED_EXTRA;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView i = new ImageView(mContext);
if (position < ADDED_EXTRA / 2) {
position = mImageIds.length- (ADDED_EXTRA / 2 - position);
} else if (position >= (mImageIds.length + (ADDED_EXTRA / 2))) {
position = position - (mImageIds.length + (ADDED_EXTRA / 2));
} else {
position -= (ADDED_EXTRA / 2);
}
i.setImageResource(mImageIds[position]);
i.setLayoutParams(new Gallery.LayoutParams(150, 100));
i.setScaleType(ImageView.ScaleType.FIT_XY);
i.setBackgroundResource(mGalleryItemBackground);
return i;
}
}
}
2011년 9월 23일 금요일
2011년 9월 7일 수요일
어플리케이션 바로가기 아이콘 등록 및 해제
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
public void onClick(View v) {
switch(v.getId()){
case R.id.button1:
Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
shortcutIntent.addCategory(Intent.CATEGORY_LAUNCHER);
shortcutIntent.setClassName(mContext, getClass().getName());
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, shortCutName);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(mContext, R.drawable.icon));
intent.putExtra("duplicate", false);
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(intent);
Toast.makeText(mContext, "Install shortcut", Toast.LENGTH_SHORT).show();
finish();
break;
case R.id.button2:
Intent shortcutUnIntent = new Intent(Intent.ACTION_MAIN);
shortcutUnIntent.addCategory(Intent.CATEGORY_LAUNCHER);
shortcutUnIntent.setClassName(mContext, getClass().getName());
shortcutUnIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
Intent i = new Intent();
i.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutUnIntent);
i.putExtra(Intent.EXTRA_SHORTCUT_NAME, shortCutName);
i.putExtra("duplicate", false);
i.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");
sendBroadcast(i);
Toast.makeText(mContext, "UnInstall shortcut", Toast.LENGTH_SHORT).show();
finish();
break;
}
}
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
public void onClick(View v) {
switch(v.getId()){
case R.id.button1:
Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
shortcutIntent.addCategory(Intent.CATEGORY_LAUNCHER);
shortcutIntent.setClassName(mContext, getClass().getName());
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, shortCutName);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(mContext, R.drawable.icon));
intent.putExtra("duplicate", false);
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(intent);
Toast.makeText(mContext, "Install shortcut", Toast.LENGTH_SHORT).show();
finish();
break;
case R.id.button2:
Intent shortcutUnIntent = new Intent(Intent.ACTION_MAIN);
shortcutUnIntent.addCategory(Intent.CATEGORY_LAUNCHER);
shortcutUnIntent.setClassName(mContext, getClass().getName());
shortcutUnIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
Intent i = new Intent();
i.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutUnIntent);
i.putExtra(Intent.EXTRA_SHORTCUT_NAME, shortCutName);
i.putExtra("duplicate", false);
i.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");
sendBroadcast(i);
Toast.makeText(mContext, "UnInstall shortcut", Toast.LENGTH_SHORT).show();
finish();
break;
}
}
2011년 8월 4일 목요일
2011년 8월 3일 수요일
String, StringBuffer, StringBuilder의 차이
- String은 한번 선언하면 변하지 않기 때문에, 사용하려는 문자열이 변하지 않을때 사용하도록 한다.
- StringBuffer는 동기화방식으로 저장되기 때문에, 멀티 쓰레드(multi Thread) 환경하에서 문자열 변경시에 사용하도록 한다.
- StringBuilder는 비동기화방식으로 저장되기 때문에, 싱글 쓰레드(Single Thread) 환경하에서 문자열 변경시 사용하도록 한다.
- StringBuffer는 동기화방식으로 저장되기 때문에, 멀티 쓰레드(multi Thread) 환경하에서 문자열 변경시에 사용하도록 한다.
- StringBuilder는 비동기화방식으로 저장되기 때문에, 싱글 쓰레드(Single Thread) 환경하에서 문자열 변경시 사용하도록 한다.
2011년 8월 1일 월요일
Text Share
Intent it = new Intent(android.content.Intent.ACTION_SEND);
it.setType("text/plain");
it.putExtra(Intent.EXTRA_SUBJECT, "제목을 넣어요");
it.putExtra(Intent.EXTRA_TEXT, "내용을 넣어요");
startActivity(Intent.createChooser(it, "팝업창 타이틀을 넣어요"));
출처 : http://withsoju.tistory.com/542
it.setType("text/plain");
it.putExtra(Intent.EXTRA_SUBJECT, "제목을 넣어요");
it.putExtra(Intent.EXTRA_TEXT, "내용을 넣어요");
startActivity(Intent.createChooser(it, "팝업창 타이틀을 넣어요"));
출처 : http://withsoju.tistory.com/542
2011년 7월 29일 금요일
Intent 활용 예시
// 웹페이지 띄우기 Uri uri = Uri.parse("http://www.google.com"); Intent it = new Intent(Intent.ACTION_VIEW,uri); startActivity(it);// 구글맵 띄우기 Uri uri = Uri.parse("geo:38.899533,-77.036476"); Intent it = new Intent(Intent.Action_VIEW,uri); startActivity(it);// 구글 길찾기 띄우기 Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=출발지주소&daddr=도착지주소&hl=ko"); Intent it = new Intent(Intent.ACTION_VIEW,URI); startActivity(it);// 전화 걸기 Uri uri = Uri.parse("tel:xxxxxx"); Intent it = new Intent(Intent.ACTION_DIAL, uri); startActivity(it);Uri uri = Uri.parse("tel.xxxxxx"); Intent it = new Intent(Intent.ACTION_CALL,uri); // 퍼미션을 잊지 마세요. <uses-permission id="android.permission.CALL_PHONE" />// SMS/MMS 발송 Intent it = new Intent(Intent.ACTION_VIEW); it.putExtra("sms_body", "The SMS text"); it.setType("vnd.android-dir/mms-sms"); startActivity(it);// SMS 발송 Uri uri = Uri.parse("smsto:0800000123"); Intent it = new Intent(Intent.ACTION_SENDTO, uri); it.putExtra("sms_body", "The SMS text"); startActivity(it);// MMS 발송 Uri uri = Uri.parse("content://media/external/images/media/23"); Intent it = new Intent(Intent.ACTION_SEND); it.putExtra("sms_body", "some text"); it.putExtra(Intent.EXTRA_STREAM, uri); it.setType("image/png"); startActivity(it);// 이메일 발송 Uri uri = Uri.parse("mailto:xxx@abc.com"); Intent it = new Intent(Intent.ACTION_SENDTO, uri); startActivity(it);Intent it = new Intent(Intent.ACTION_SEND); it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com"); it.putExtra(Intent.EXTRA_TEXT, "The email body text"); it.setType("text/plain"); startActivity(Intent.createChooser(it, "Choose Email Client"));Intent it = new Intent(Intent.ACTION_SEND); String[] tos = {"me@abc.com"}; String[] ccs = {"you@abc.com"}; it.putExtra(Intent.EXTRA_EMAIL, tos); it.putExtra(Intent.EXTRA_CC, ccs); it.putExtra(Intent.EXTRA_TEXT, "The email body text"); it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text"); it.setType("message/rfc822"); startActivity(Intent.createChooser(it, "Choose Email Client"));// extra 추가하기 Intent it = new Intent(Intent.ACTION_SEND); it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text"); it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3"); sendIntent.setType("audio/mp3"); startActivity(Intent.createChooser(it, "Choose Email Client"));// 미디어파일 플레이 하기 Intent it = new Intent(Intent.ACTION_VIEW); Uri uri = Uri.parse("file:///sdcard/song.mp3"); it.setDataAndType(uri, "audio/mp3"); startActivity(it);Uri uri = Uri.withAppendedPath( MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1"); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it);// 설치 어플 제거 Uri uri = Uri.fromParts("package", strPackageName, null); Intent it = new Intent(Intent.ACTION_DELETE, uri); startActivity(it);// APK파일을 통해 제거하기 Uri uninstallUri = Uri.fromParts("package", "xxx", null); returnIt = new Intent(Intent.ACTION_DELETE, uninstallUri);// APK파일 설치 Uri installUri = Uri.fromParts("package", "xxx", null); returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);// 음악 파일 재생 Uri playUri = Uri.parse("file:///sdcard/download/everything.mp3"); returnIt = new Intent(Intent.ACTION_VIEW, playUri);// 첨부파일을 추가하여 메일 보내기 Intent it = new Intent(Intent.ACTION_SEND); it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text"); it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/eoe.mp3"); sendIntent.setType("audio/mp3"); startActivity(Intent.createChooser(it, "Choose Email Client"));// 마켓에서 어플리케이션 검색 Uri uri = Uri.parse("market://search?q=pname:pkg_name"); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); // 패키지명은 어플리케이션의 전체 패키지명을 입력해야 합니다.// 마켓 어플리케이션 상세 화면 Uri uri = Uri.parse("market://details?id=어플리케이션아이디"); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); // 아이디의 경우 마켓 퍼블리싱사이트의 어플을 선택후에 URL을 확인해보면 알 수 있습니다.// 구글 검색 Intent intent = new Intent(); intent.setAction(Intent.ACTION_WEB_SEARCH); intent.putExtra(SearchManager.QUERY,"searchString") startActivity(intent);
피드 구독하기:
글 (Atom)