ユーザーがポップアップをクリックするとギャラリーから画像を選択してボタンの上に表示されるボタンを持つアクティビティを作っています。私はギャラリーからイメージを取得する方法を考え出しましたが、イメージビューには表示されません。私はスキップを押すと、私はデフォルトの画像を設定する方法を見つけることができません。選択したイメージをデータベースに保存すると良い選択は何でしょうか?imageviewは選択した画像を表示していません
imagePicker.java
public class imagePicker extends AppCompatActivity {
private static int RESULT_LOAD_IMAGE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_picker);
Typeface tf = Typeface.createFromAsset(getAssets(),
"fonts/Psilly.otf");
TextView tv = (TextView) findViewById(R.id.select);
tv.setTypeface(tf);
tv.setText("Set Your Profile Picture");
}
public void choose(View view) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
"Select Picture"), RESULT_LOAD_IMAGE);
}
public void chats(View view) {
Intent i = new Intent(this, Chats.class);
startActivity(i);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
ImageView imageView = (ImageView) findViewById(R.id.galpic);
imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
}
}
}
xmlファイル:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.nagpal.karan.radarchat.imagePicker"
android:background="@color/white">
<ImageView
android:layout_width="250dp"
android:layout_height="200dp"
android:background="@drawable/pic_stroke"
android:id="@+id/galpic"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="130dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Choose from gallery"
android:id="@+id/gallery"
android:background="@drawable/button_shape"
android:textSize="18dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="140dp"
android:onClick="choose"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Skip >"
android:id="@+id/skip"
android:textSize="18dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:background="@drawable/button_shape"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="70dp"
android:onClick="chats"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Set Your Profile Picture"
android:id="@+id/select"
android:textSize="25dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp" />
</RelativeLayout>
pic_stroke.xml:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/white" />
<stroke android:width="3dp" android:color="@android:color/black" />
</shape>
私はいくつかのブログで見つけたonActivityResultのコードを変更し、マニフェストファイルを変更せずに機能しました。そこで、ビットマップに設定する代わりに、イメージを取得して、 'image.setImageURI(myimage)'を実行しました。 –