2011-08-29 4 views
1

나는이 손에있는 경우 :`R.drawable.foo` 참조가 주어진 갤러리 앱에 이미지를 어떻게로드합니까?

정말 JPG 파일 그냥 참조입니다
R.drawable.foo 

, 어떻게 내가 열 않는 안드로이드의 갤러리 응용 프로그램에서?

startActivity(
    new Intent(
     Intent.ACTION_VIEW, 
     /* what goes here for the URI?? */ 
    ) 
); 

그러나 URI 내가 사용합니까 무엇 :

나는이의 라인을 따라 뭔가를 제안 참고 문헌의 무리를 발견했다?

나는 도용시 기본 Android 앱에서 이미지를 열어줌으로써 확대, 공유 등을 무료로받을 수 있습니다.

URI (여기에 제안 된대로 here)를 사용할 수없는 경우 이미지를로드하려면 어떻게해야합니까?

답변

1

다른 응용 프로그램은 사용자의 리소스에 액세스 할 수 없습니다. 그 같은 다른 것.

두 가지 옵션이 있습니다.

Easyway는 :

은 자원 (수동으로 실시)이 SDCARD에 다음이 당신의 URI가

Uri.parse(Environment.getExternalStorageDirectory() + "/android/com.my.app/.cache/foo.jpg"); 

Environment.getExternalStorageDirectory()을 볼 수있는 방법입니다 URI

을 보내 하드 코딩 추상화 복사 또는 .cache은 숨겨진 폴더가 될 것이며 임시 이미지를 원한다면 갤러리 이미지의 최대 승 당신은 .cache 폴더에 .nomedia 빈 파일을 생성 할 필요가

당신은 sdcard에 권한

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

에게 Hardway를 추가 할 필요가 있습니다

구현하는 당신의 필요 a FileContentProviderContentProvider

사용자 지정 URI를 제공하고 FileContentProvider.Open, y에서 파일을 제공합니다. OU는 mime를 구현해야 할 수 있으며 다른 방법이

UPDATE 당신은 또한 매니페스트의 콘텐츠 공급자를 등록해야합니다 에 대한 aswell. Android - open pdf in external application

+0

감사합니다. SD 카드에 파일을 복사하면 시작하기 위해 권장되는 통화는 무엇입니까 (즉, 전체'startactivity' 호출)? –

+0

앱이 리소스를'.cache' 폴더에로드하는 일반적인 방법은 무엇입니까? 이 파일을 코딩해야하나요, 아니면 특수한 위치에 파일을 저장하고 설치할 때 파일을 드롭합니까? –

+0

/sdcard/com.my.app 경로는 안드로이드의 최신 버전에서 만들어졌지만 2.1과 2.2에서는 생성해야합니다. 그리고 drawable 우리는 수동으로 복사해야합니다 – Samuel

관련 문제