이미지 경로는 이미지를 유지하기 위해 공유 기본 설정에 저장되지 않습니다.

user2909006

그래서 사용자가 선택한 이미지에서 이미지 경로를 저장하여 사용자가 앱을 종료하고 다시 열 때 이미지가 여전히 아이콘에 대한 배경 또는 imageView로 설정됩니다 (둘 다 동일한 이미지 경로 메서드를 사용함).

다음은 제 코딩입니다 (Drag_and_Drop_App.java).

public Bitmap getThumbnail(String filename) { 
     Bitmap thumbnail = null; 
     try { 
     File filePath = this.getFileStreamPath(filename); 
     FileInputStream fi = new FileInputStream(filePath); 
     thumbnail = BitmapFactory.decodeStream(fi); 
     } catch (Exception ex) { 
     Log.e("getThumbnail() on internal storage", ex.getMessage()); 
     } 
     return thumbnail; 
     } 

     @Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     Log.i("Drag_and_Drop_App", "requestCode: " + requestCode + ", resultCode: " + resultCode); 
     if(requestCode == SET_BACKGROUND && resultCode == RESULT_OK){ 
     byte[] byteArray = data.getByteArrayExtra("myBackgroundBitmap"); 
     Bitmap myBackground = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length); 
     setBackgroundImage(myBackground); 
     } 
     else if(requestCode == RESULT_ICON){
         byte[] byteArray = data.getByteArrayExtra("myIconBitmap"); 
         Bitmap myIcon = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length); 
         setBackgroundImageForIcon(myIcon); 
         Log.d("Drag_and_Drop_App", "Icon is set");
     }
     } 

Personalize.java :

public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
int column_index = cursor
        .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String imagePath = cursor.getString(column_index);
if(cursor != null) {
cursor.close();
}
return imagePath;
}

private void setIconImageInWidget() {
// TODO Auto-generated method stub
Log.d("Personalize", "setIconImageInWidget() called");
Intent i = getIntent();
//Convert bitmap to byte array to send back to activity
// See: http://stackoverflow.com/questions/11010386/send-bitmap-using-intent-android
scaleDownBitmapForIcon(b2, 500, this.getBaseContext());
Log.d("Personalize", "Scale Bitmap Chosen For Icon");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
b2.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[]byteArray = stream.toByteArray();

i.putExtra("myIconBitmap", byteArray);
setResult(RESULT_ICON, i);
finish();
}

private void setBackgroundImageInDragAndDrop() {
Log.d("Personalize", "setBackgroundImageInDragAndDrop() called");
Intent i = getIntent();
//Convert bitmap to byte array to send back to activity
// See: http://stackoverflow.com/questions/11010386/send-bitmap-using-intent-android
scaleDownBitmap(background, 500, this.getBaseContext());
Log.d("Personalize", "Scale Bitmap Chosen");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
background.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[]byteArray = stream.toByteArray();

i.putExtra("myBackgroundBitmap", byteArray);
setResult(RESULT_OK, i);
finish();
}

@Override
 protected void onPause() {
SharedPreferences sp = getSharedPreferences("AppSharedPref", 1); //open shared preferences with name AppSharedPref
Editor editor = sp.edit();
editor.putString("ImagePath", selectedImagePath); //Store selectedImagePath with key "ImagePath". This key will be then used to retrieve data.
editor.commit();
super.onPause();
Log.d("Personalize", "onPause() called and selectedImagePath saved");
}

@Override
protected void onResume() {
SharedPreferences sp = getSharedPreferences("AppSharedPref", 1);
selectedImagePath = sp.getString("ImagePath", "");
super.onResume();
Log.d("Personalize", "onResume() called and images uploaded");
}

public boolean saveImageToInternalStorage(Bitmap image) {
   try {
      FileOutputStream fos = this.openFileOutput("desiredFilename.png", Context.MODE_PRIVATE);
      image.compress(Bitmap.CompressFormat.PNG, 100, fos);
      fos.close();   
      return true;
   } catch (Exception e) {
   return false;
   }
}

문제는 이것이 작동하지 않고 앱을 다시 열 때 배경이 이전에 선택한 이미지로 설정되지 않는다는 것입니다.

부 미카 브람 바트

sharedpref onResume ()에서 이미지 경로를 가져올 때 selectedPath가 null이 아닌 경우 해당 이미지를 배경으로 추가하십시오.

@Override
protected void onResume() {
SharedPreferences sp = getSharedPreferences("AppSharedPref", 1);
selectedImagePath = sp.getString("ImagePath", "");
super.onResume();
Log.d("Personalize", "onResume() called and images uploaded");
Log.d("Personalize", "Now set the image as background");
 background = getAndDecodeImage(selectedImagePath);
    if(background != null){
        image.setImageBitmap(background); 
    }   
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이미지를 공유하기 위해 공유 시트를 시작하기 전에 이미지가 렌더링되었는지 확인 하시겠습니까?

분류에서Dev

Facebook에서 내 페이지를 공유 할 때 사용되는 기본 이미지를 설정하려면 어떻게해야합니까?

분류에서Dev

기본 이미지 뷰어를 통해 Facebook에서 이미지를 공유하는 방법

분류에서Dev

공유 기본 설정을 사용하여 ImageView에 이미지를 저장하는 방법

분류에서Dev

서버의 데이터가 공유 기본 설정에 저장되지 않음

분류에서Dev

CSS 배경 이미지-이미지를 설정하는 방법은 위치에 유지됩니다.

분류에서Dev

두 이미지를 혼합하기 위해 첫 번째 이미지의 크기를 조정해야하는 이유는 무엇입니까?

분류에서Dev

라디오 버튼이있는 대화 상자는 공유 기본 설정을 저장하지만 동작은 저장하지 않습니다.

분류에서Dev

라디오 버튼이있는 대화 상자는 공유 기본 설정을 저장하지만 동작은 저장하지 않습니다.

분류에서Dev

EditText의 텍스트가 공유 기본 설정에 저장되지 않음

분류에서Dev

나중에 jQuery를 사용하여 배경 이미지로 설정하기 위해 이미지를 미리로드하려면 어떻게해야합니까?

분류에서Dev

이미지를 배경 화면으로 설정하기 위해 장치에 이미지를 다운로드하려면 어떻게합니까

분류에서Dev

Android 내부 저장소에서 이미지를로드하기위한 권한이 거부되었습니다.

분류에서Dev

Android 내부 저장소에서 이미지를로드하기위한 권한이 거부되었습니다.

분류에서Dev

긴 텍스트를 끊기 위해 유지하지만 세로로 정렬 된 이미지로 단어를 유지하는 크로스 브라우저 방식

분류에서Dev

공유 환경 설정이 생성되고 있지만 키에 대해 저장되는 값이 0입니다.

분류에서Dev

공유 환경 설정이 저장되지 않습니다 (더 이상).

분류에서Dev

Facebook에서 페이지를 공유 할 때 기본 이미지

분류에서Dev

기본 이미지 뷰어를 통해 Facebook에서 이미지를 공유하려면 어떻게해야합니까?

분류에서Dev

기본 이미지 뷰어를 통해 Facebook에서 이미지를 공유하려면 어떻게해야합니까?

분류에서Dev

UIActivityViewController는 FB, Twitter 및 Mail에 대해서만 이미지를 공유하지만 메시지는 공유하지 않습니다.

분류에서Dev

imageView를 설정하기 전에 "translatesAutoresizingMaskIntoConstraints"를 false로 설정하면 이미지가 표시되지 않는 이유는 무엇입니까?

분류에서Dev

공유 환경 설정이 내 데이터를 저장하지 않습니다.

분류에서Dev

json 응답이 성공해도 배경 이미지를 설정하지 않는 Ajax 완료 기능

분류에서Dev

공유 기본 설정으로 오디오 상태가 지속적으로 저장되지 않음

분류에서Dev

이미지 Mime 유형이 저장 / 열기 대화 상자로 리디렉션되지 않습니다.

분류에서Dev

공개 API를 단순화하기 위해 이미 공개 유형의 별칭을 지정하는 경우 플랫폼 별 유형 별칭을 비공개로 만들 수 있습니까?

분류에서Dev

공유 환경 설정을 사용하여 이미지를 저장하는 방법은 무엇입니까? 기계적 인조 인간

분류에서Dev

비례를 유지하기 위해 이미지 크기 조정 방법

Related 관련 기사

  1. 1

    이미지를 공유하기 위해 공유 시트를 시작하기 전에 이미지가 렌더링되었는지 확인 하시겠습니까?

  2. 2

    Facebook에서 내 페이지를 공유 할 때 사용되는 기본 이미지를 설정하려면 어떻게해야합니까?

  3. 3

    기본 이미지 뷰어를 통해 Facebook에서 이미지를 공유하는 방법

  4. 4

    공유 기본 설정을 사용하여 ImageView에 이미지를 저장하는 방법

  5. 5

    서버의 데이터가 공유 기본 설정에 저장되지 않음

  6. 6

    CSS 배경 이미지-이미지를 설정하는 방법은 위치에 유지됩니다.

  7. 7

    두 이미지를 혼합하기 위해 첫 번째 이미지의 크기를 조정해야하는 이유는 무엇입니까?

  8. 8

    라디오 버튼이있는 대화 상자는 공유 기본 설정을 저장하지만 동작은 저장하지 않습니다.

  9. 9

    라디오 버튼이있는 대화 상자는 공유 기본 설정을 저장하지만 동작은 저장하지 않습니다.

  10. 10

    EditText의 텍스트가 공유 기본 설정에 저장되지 않음

  11. 11

    나중에 jQuery를 사용하여 배경 이미지로 설정하기 위해 이미지를 미리로드하려면 어떻게해야합니까?

  12. 12

    이미지를 배경 화면으로 설정하기 위해 장치에 이미지를 다운로드하려면 어떻게합니까

  13. 13

    Android 내부 저장소에서 이미지를로드하기위한 권한이 거부되었습니다.

  14. 14

    Android 내부 저장소에서 이미지를로드하기위한 권한이 거부되었습니다.

  15. 15

    긴 텍스트를 끊기 위해 유지하지만 세로로 정렬 된 이미지로 단어를 유지하는 크로스 브라우저 방식

  16. 16

    공유 환경 설정이 생성되고 있지만 키에 대해 저장되는 값이 0입니다.

  17. 17

    공유 환경 설정이 저장되지 않습니다 (더 이상).

  18. 18

    Facebook에서 페이지를 공유 할 때 기본 이미지

  19. 19

    기본 이미지 뷰어를 통해 Facebook에서 이미지를 공유하려면 어떻게해야합니까?

  20. 20

    기본 이미지 뷰어를 통해 Facebook에서 이미지를 공유하려면 어떻게해야합니까?

  21. 21

    UIActivityViewController는 FB, Twitter 및 Mail에 대해서만 이미지를 공유하지만 메시지는 공유하지 않습니다.

  22. 22

    imageView를 설정하기 전에 "translatesAutoresizingMaskIntoConstraints"를 false로 설정하면 이미지가 표시되지 않는 이유는 무엇입니까?

  23. 23

    공유 환경 설정이 내 데이터를 저장하지 않습니다.

  24. 24

    json 응답이 성공해도 배경 이미지를 설정하지 않는 Ajax 완료 기능

  25. 25

    공유 기본 설정으로 오디오 상태가 지속적으로 저장되지 않음

  26. 26

    이미지 Mime 유형이 저장 / 열기 대화 상자로 리디렉션되지 않습니다.

  27. 27

    공개 API를 단순화하기 위해 이미 공개 유형의 별칭을 지정하는 경우 플랫폼 별 유형 별칭을 비공개로 만들 수 있습니까?

  28. 28

    공유 환경 설정을 사용하여 이미지를 저장하는 방법은 무엇입니까? 기계적 인조 인간

  29. 29

    비례를 유지하기 위해 이미지 크기 조정 방법

뜨겁다태그

보관