2017-11-15 4 views
-1

저는 기존 Windows 응용 프로그램을 Android에 다시 작성하고 있습니다.안드로이드에서 이미지 라이브러리를 처리하는 방법은 무엇입니까?

내 응용 프로그램은 장애가있는 사용자를위한 맞춤형 화상 대화 프로그램입니다. 약 300 개의 분류 된 이미지를 사용하며이 수가 증가하고 있습니다. 그들은 각각 100-300kB를 사용합니다.

Windows 버전에서는 하위 폴더가있는 폴더가 있는데이 파일을 설치자의 Program files\My application에 복사하고 있습니다. 런타임 동안 나는 파일 시스템에서 이미지와 폴더 트리를 읽었다.

이제이 폴더 구조를 Android 애플리케이션의 이미지와 함께 다시 사용하고 싶지만 Android 개발에 대한 지식이 부족합니다.


내 질문 :

가 어떻게 APK 파일에서 이미지의 전체 폴더를 "포함"하고 설치 중에 파일 시스템의 어딘가에에 "확장"할 수 있습니까?


내의 minSdkVersion이 21

+0

궁금한 점이 궁극적으로 Android 응용 프로그램 작동 방식에 대한 보편적 인 질문이 될 것입니다. 모든 시스템에서 Java 코드를 통해 I/O 작업을 수행하는 방법을 생각해보십시오. 왜 안드로이드가 그렇게 다른 것입니까? http get 요청을 수행 할 때도 마찬가지입니다. 다른 Java 응용 프로그램과 동일합니다. –

+0

@MarkKeen Handling I/O는 저에게 문제가되지 않습니다. 장치에 같은 폴더를 생성하는 apk 파일을 작성하는 것이 문제입니다. – Kamil

+0

Android에서 리소스가 더 쉽게 처리됩니다. [Android 리소스] (https://developer.android.com/guide/topics/resources/accessing-resources.html)에 대해 자세히 읽어 보시기 바랍니다. – m0skit0

답변

2

"프로그래밍 방식으로 만"모든 이미지를로드하는 경우 모든 디렉토리 트리를 자산 폴더에 덤프 할 수 있습니다. assets 폴더는 계층 구조를 유지 관리합니다.
AssetManager를 사용하여 파일에 액세스합니다. 애셋에서 읽은 파일은 단순히 바이트의 스트림입니다.AssetManagerdocs

당으로

는 응용 프로그램의 원시 자산 파일에 대한 액세스를 제공합니다. 이 클래스는 응용 프로그램과 함께 번들 된 원시 파일을 열어 간단한 바이트 스트림으로 읽을 수있게 해주는 하위 수준의 API를 제공합니다.

헤드 체크를 위해 tutorial을 확인하십시오.

+1

'Bitmap bmp = BitmapFactory.decodeStream (context.getAssets(). open (filename));'작업을 수행합니다. 나는 이것이 매우 간단하다고 믿을 수 없다. – Kamil

1

내 질문 (들)입니다 :

내 안드로이드 애플 리케이션에 300 개 이미지가있는 폴더를 추가 할 수 있습니까? 내 앱 비공개 - -이 데이터베이스 및 환경 설정이있는 위치는

당신은 Pictures 같은 디렉토리가있는 곳, 또는 응용 프로그램 내부 스토리지 context.getFilesDir()에 대한 Environment.getExternalStorageDirectory()을 얻을 것입니다.

첫 번째 응용 프로그램 실행 중에 인터넷에서 다운로드하여 파일 시스템에 저장 하시겠습니까? 내 폴더를 Android 프로젝트의 리소스에 복사 하시겠습니까?

당신도 당신의 Application 클래스 또는 실행 Activity 후크의 onCreate()에 훅 수 있습니다.

몇 가지 참고 사항 :

당신은 당신의 매니페스트에 인터넷 권한이 필요한 내부 응용 프로그램 폴더에 직접 저장하려면, 그러나 외부 sotrage를 사용하는 경우 읽기/쓰기 권한을 필요로하고, 산들 바람을 대상으로합니다 + 런타임 권한을 처리해야합니다. 또한 사용자 동의없이 300 개의 이미지를 다운로드하는 것은 나쁜 습관 일 수 있습니다. 사용자가 먼저 결정하도록 고려하십시오.

I/O 처리에 만족한다고 언급 했으므로 여기에 대해서는 자세히 설명하지 않겠습니다.

+0

정확하게 이해하면 OP는 패키지와 함께 이미지를 번들링하는 것에 대해 묻습니다. –

+0

@SumitAnantwar 편집하기 전에 원래의 질문이 아니기 때문에 내 답변이 기반으로되어있어 대답에서 OP 질문를 강조 표시합니다. –

+0

죄송합니다. 편집하기 전에 질문을 읽지 않았습니다. –