안드로이드 개발 질문/답변
(글 수 45,052)
package com.MomStory;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.view.Window;
import android.widget.Gallery;
import android.widget.ImageView;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.view.Window;
import android.widget.Gallery;
import android.widget.ImageView;
public class StartActivity extends Activity {
private static final int SELECT_IMAGE = 3;
// ImageView chosenImageView;
Gallery chosenImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(Window.FEATURE_NO_TITLE, Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
findViewById(R.id.choice1).setOnClickListener(bHandler);
// chosenImageView = (ImageView) this.findViewById(R.id.imageView1);
chosenImageView = (Gallery) this.findViewById(R.id.chosenImageView);
}
// ImageView chosenImageView;
Gallery chosenImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(Window.FEATURE_NO_TITLE, Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
findViewById(R.id.choice1).setOnClickListener(bHandler);
// chosenImageView = (ImageView) this.findViewById(R.id.imageView1);
chosenImageView = (Gallery) this.findViewById(R.id.chosenImageView);
}
View.OnClickListener bHandler = new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, SELECT_IMAGE);
chosenImageView = (Gallery) findViewById(R.id.chosenImageView);
}
};
// TODO Auto-generated method stub
Intent i = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, SELECT_IMAGE);
chosenImageView = (Gallery) findViewById(R.id.chosenImageView);
}
};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
switch(requestCode) {
case SELECT_IMAGE:
if(resultCode == RESULT_OK){
Uri uri = imageReturnedIntent.getData();
String[] projection = {MediaStore.Images.Media.DATA};
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
switch(requestCode) {
case SELECT_IMAGE:
if(resultCode == RESULT_OK){
Uri uri = imageReturnedIntent.getData();
String[] projection = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
cursor.moveToFirst();
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(projection[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
String filePath = cursor.getString(columnIndex);
cursor.close();
Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
Drawable d =new BitmapDrawable(yourSelectedImage);
chosenImageView.setBackgroundDrawable(d);
}
}
}
}
Drawable d =new BitmapDrawable(yourSelectedImage);
chosenImageView.setBackgroundDrawable(d);
}
}
}
}
외부 메모리에세 원하는 사진만 클릭해서 갤러리뷰로 불러오기;
이미지 한장만 불러오고 다시 버튼 누르면 전 이미지 사라지고 그자리에 새로운 이미지가 들어가는데,,
버튼눌러서 추가하면 전 이미지 살아있고 이미지가 추가되서 갤러리뷰에 하나하나 추가되게 하고 싶은데; 도와주세요




갤러리뷰 사용이 아예 잘못 되었네요
우선 갤러리뷰 API 샘플을 보신 이후에 다시 적용해보세요
갤러리뷰에 뷰 아이템을 추가하는 방식은 저렇게 setBackGroundDrawble 이 아니라
BaseAdapter 객체를 만들어서 바인딩 시킨 다음에 Adapter 에 아이템을 추가합니다.