2016-05-21 6 views
2

パスとイメージをデータベースに保存できません。データベースにパスやイメージを保存したいのですが、プロファイルを更新した後にそのイメージを取得してイメージビューに設定したいと思います。私のonactvityの結果が助けてください。クリックしてギャラリーイメージをsqliteデータベースに保存してフェッチする方法は?

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == RESULT_OK) { 
     if (requestCode == 1) { 
      File f = new File(Environment.getExternalStorageDirectory().toString()); 
      for (File temp : f.listFiles()) { 
       if (temp.getName().equals("temp.jpg")) { 
        f = temp; 
        break; 
       } 
      } 
      try { 
       Bitmap bitmap; 
       BitmapFactory.Options bitmapOptions = new BitmapFactory.Options(); 

       bitmap = BitmapFactory.decodeFile(f.getAbsolutePath(), 
         bitmapOptions); 
       ImagePaht = CommonUtility.encodeTobase64(bitmap); 
       mAddProfilePic.setImageBitmap(bitmap); 
       mAddProfilePic.setScaleType(ImageView.ScaleType.MATRIX); 
       String path = android.os.Environment 
         .getExternalStorageDirectory() 
         + File.separator 
         + "Phoenix" + File.separator + "default"; 
       boolean delete = f.delete(); 
       OutputStream outFile = null; 
       File file = new File(path, String.valueOf(System.currentTimeMillis()) + ".jpg"); 
       try { 
        outFile = new FileOutputStream(file); 
        bitmap.compress(Bitmap.CompressFormat.JPEG, 85, outFile); 
        ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
        byteArray = stream.toByteArray(); 
        outFile.flush(); 
        outFile.close(); 
       } catch (FileNotFoundException e) { 
        e.printStackTrace(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } else if (requestCode == 2) { 

      Uri selectedImage = data.getData(); 
      String[] filePath = {MediaStore.Images.Media.DATA}; 
      Cursor c = getContentResolver().query(selectedImage, filePath, null, null, null); 
      if (c != null) { 
       c.moveToFirst(); 
      } 
      int columnIndex = c.getColumnIndex(filePath[0]); 
      String picturePath = c.getString(columnIndex); 
      c.close(); 
      Bitmap thumbnail = (BitmapFactory.decodeFile(picturePath)); 
      // Log.e("path of ", picturePath + ""); 
      ImagePaht = CommonUtility.encodeTobase64(thumbnail); 
      mAddProfilePic.setImageBitmap(thumbnail); 
      ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
      thumbnail.compress(Bitmap.CompressFormat.PNG, 100, stream); 
      byteArray = stream.toByteArray(); 
      mAddProfilePic.setScaleType(ImageView.ScaleType.MATRIX); 
     } 
    } 
} 

//これ、あなたがイメージパスを保存するか、または
ここで、我々はあなたのデータベースにBase64でイメージを保存することができ、あなたの画像をデータベースに格納するためのデータベース

private void saveInDbHospitalTable() { 
    Log.e("file name", "" + ImagePaht); 
    Table_Hospital_Methods mTable_Hospital_Methods = new Table_Hospital_Methods(getApplicationContext()); 
    //String profilePictureURL = String.valueOf(byteArray); 
    // Log.e("profilePictureURL", "" + profilePictureURL); 
    String hospitalName = mHospitalName.getText().toString(); 
    String doctorName = mDocName.getText().toString(); 
    String registrationNo = mRegistrationNumber.getText().toString(); 
    String hospitalPhoneNumber = mHospitalPhoneNumber.getText().toString(); 
    String doctorPhoneNumber = mDoctorPhoneNumber.getText().toString(); 
    String hospitalAddress = mHospiatlAddress.getText().toString(); 
    ModelHospitalProfile modelHospitalProfile = new ModelHospitalProfile(byteArray, hospitalName, 
      doctorName, registrationNo, hospitalPhoneNumber, doctorPhoneNumber, hospitalAddress); 
    long hospitalId= mTable_Hospital_Methods.gethospitalId(); 
    Log.e("hospitalId", "" + hospitalId); 
    if(mTable_Hospital_Methods.getHospitalCount()>0 && userName1==1) { 

     mTable_Hospital_Methods.updateToDo(modelHospitalProfile,hospitalId); 
     Log.e("update", "update"); 

    } 
    else{ 
     mTable_Hospital_Methods.insertHospital(modelHospitalProfile);} 

} 

答えて

0

に保存する私の方法データベースにイメージのパスを格納する

private void captureImage() { 
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

    fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); 

    intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); 

    // start the image capture Intent 
    startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // if the result is capturing Image 
    if (requestCode == CAMERA_CAPTURE_IMAGE_REQUEST_CODE) { 
     if (resultCode == RESULT_OK) { 
      settingImaePath(fileUri); 
     } 
    } 
    if (requestCode == PICK_IMAGE && resultCode == RESULT_OK && data != null && data.getData() != null) { 
     Uri filePath = data.getData(); 
     try { 
      //Getting the Bitmap from Gallery 
      Log.i("file path", "" + filePath); 
      final Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath); 
      //Setting the Bitmap to ImageView 
      Date now = new Date(); 
      android.text.format.DateFormat.format("yyyy-MM-dd_hh:mm:ss", now); 
      File imageFile = null; 
      String mPath = null; 
      try { 
       // image naming and path to include sd card appending name you choose for file 
       mPath = Environment.getExternalStorageDirectory().toString() + "/" + now.getTime() + ".jpg"; 

       imageFile = new File(mPath); 

       FileOutputStream outputStream = new FileOutputStream(imageFile); 
       int quality = 100; 
       bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream); 
       outputStream.flush(); 
       outputStream.close(); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      UserProfile userProfile = new UserProfile(); 
      userProfile.setImagePath(mPath); 
      ProfileTable.getInstance().add(signupBean); // Here setting gallery image path into ProfileTable 

      userImage.setImageBitmap(bitmap); // userImage is an Imageview 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 


public void settingImaePath(Uri fileUri) { 
    String filePath = fileUri.getPath(); 
    if (filePath != null) { 
     // Displaying the image or video on the screen 
     previewMedia(filePath); 
    } 

} 


private void previewMedia(String filePath) { 
    // Checking whether captured media is image or video 

    Log.i("file path", "" + filePath); 

    // bimatp factory 
    BitmapFactory.Options options = new BitmapFactory.Options(); 

    // down sizing image as it throw s OutOfMemory Exception for larger 
    // images 
    options.inSampleSize = 8; 

    final Bitmap bitmap = BitmapFactory.decodeFile(filePath, options); 

    Date now = new Date(); 
    android.text.format.DateFormat.format("yyyy-MM-dd_hh:mm:ss", now); 
    File imageFile = null; 
    String mPath = null; 
    try { 
     // image naming and path to include sd card appending name you choose for file 
     mPath = Environment.getExternalStorageDirectory().toString() + "/" + now.getTime() + ".jpg"; 

     imageFile = new File(mPath); 

     FileOutputStream outputStream = new FileOutputStream(imageFile); 
     int quality = 80; 
     bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream); 
     outputStream.flush(); 
     outputStream.close(); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    UserProfile userProfile = new UserProfile(); 
    userProfile.setImagePath(mPath); 
    ProfileTable.getInstance().add(signupBean); // Here setting gallery image path into ProfileTable 
    userImage.setImageBitmap(bitmap); 

} 


//For Viewing save image from path 
final Bitmap bitmap = BitmapFactory.decodeFile(imagePath); 
imageView.setImageBitmap(bitmap); 
+0

私はウル答えを得るDINT ...ウルなっonActivityResultに一度databseへのパス.. –

+0

を保存する場所のパスすなわちmPathはそのパスを保存した後、画像パスを保持します。UserProfile userProfile = new UserProfile(); userProfile.setImagePath(mPath); ProfileTable.getInstance()。add(signupBean); //ここでUserProfileは私のテーブルです。これは特定のテーブルの列に保存することができます –

+0

okkayありがとう –

関連する問題