0

カスタムしていますListview。中にはButtonと がありImageViewます。

ボタンをクリックすると、カメラが開きます(カメラインテントが起動されます)。

ImageViewListItem もあるキャプチャされた Image (Bitmap とも呼ばれます)が必要です。

つまり、画像をキャプチャしてカメラの [完了] ボタンを押すと、imageview でその画像を設定する必要があります。

これどうやってするの?

4

2 に答える 2

1

以下の手順に従ってください。

  1. アクティビティからのカメラ インテントの結果のアクティビティを開始します。
  2. onActivityResultあなたの活動への画像制御コールバックをキャプチャした後。
  3. 画像のパスを処理します。
  4. リストビュー項目の位置にプロパティを設定して、そのパスを画像に設定します。
于 2012-12-27T06:12:17.877 に答える
0
 private static int FILE_SELECT_CODE_1 = 0;
    function intentCamera(){
         Intent i = new Intent(
                        android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
         startActivityForResult(i, FILE_SELECT_CODE_1);


  }

private String getLastImagePath() {
        final String[] imageColumns = { MediaStore.Images.Media._ID,
                MediaStore.Images.Media.DATA };
        final String imageOrderBy = MediaStore.Images.Media._ID + " DESC";
        Cursor imageCursor = managedQuery(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageColumns,
                null, null, imageOrderBy);
        if (imageCursor.moveToFirst()) {
            //int id = imageCursor.getInt(imageCursor.getColumnIndex(MediaStore.Images.Media._ID));
            String fullPath = imageCursor.getString(imageCursor
                    .getColumnIndex(MediaStore.Images.Media.DATA));
            // Log.d(TAG, "getLastImageId::id " + id);
            // Log.d(TAG, "getLastImageId::path " + fullPath);
            imageCursor.close();
            return fullPath;
        } else {
            return "";
        }
    }

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == FILE_SELECT_CODE_1 && resultCode == RESULT_OK){
         String lastImagePath = getLastImagePath();
         File fileImage = new File(lastImagePath);
         Uri u = Uri.fromFile(fileImage);
         //now you can set the image example:
         ImageView img = new ImageView(this);
         img.setImageURI(u);




    }
}
于 2012-12-27T06:56:50.287 に答える