web-dev-qa-db-ja.com

ユーザーがAndroidアプリに画像を挿入できるようにする

私の質問は、ユーザーが自分の携帯電話から画像をアップロードし、それを画像プロファイルとしてアプリケーションに挿入できるようにするimageButtonを作成する方法ですか?たとえばwhatsappのように、ユーザーは電話から画像を選択し、それを画像プロファイルとして設定できます。

ありがとう

8
Mack

以下のリンクがあります。

画像作成ボタン

画像をアップロード

例1

例2

9
Janmejoy

私のXMLファイル

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
          Android:orientation="vertical"
          Android:layout_width="fill_parent"
          Android:layout_height="fill_parent">

<ImageView
    Android:id="@Android:id/icon"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:layout_weight="1"
    Android:onClick="selectImage"
    />

私のファイル

public class Test extends AppCompatActivity {
private static final int SELECT_PICTURE = 0;
private ImageView imageView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);
    imageView = (ImageView) findViewById(Android.R.id.icon);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        Bitmap bitmap = getPath(data.getData());
        imageView.setImageBitmap(bitmap);
    }
}

private Bitmap getPath(Uri uri) {

    String[] projection = {MediaStore.Images.Media.DATA};
    Cursor cursor = managedQuery(uri, projection, null, null, null);
    int column_index = cursor
            .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    String filePath = cursor.getString(column_index);
   // cursor.close();
    // Convert file path into bitmap image using below line.
    Bitmap bitmap = BitmapFactory.decodeFile(filePath);

    return bitmap;
}

private void selectImage() {

    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_PICTURE);
}

}
1
Sabby