2016-07-26 1 views
6

sd 카드의 이미지 뷰에 벡터 이미지 (예 : vectorimage.xml)를 보여주고 싶습니다. 안드로이드에서 이것을하는 방법에 대한 통찰력을 던져주십시오. 이미 시도 무엇 : -sd 카드에서 imageview에 벡터 드로어 블로드하기

String imagePath = Environment.getExternalStorageDirectory() + "/ folder/productImage.xml"; 

bitmapImage = BitmapFactory.decodeFile(imagePath); 
Drawable bgrImageDrawable = new BitmapDrawable(bitmapImage); 

bitmapImage가 null로오고 있기 때문에 위의 코드가 작동하지 않습니다.

+0

당신의 ImagePath의 경로를 확인하고 또한 동일한 코드와 JPEG와 menifest – Vickyexpert

+1

네,이 만든이 작품에서 권한을 확인 받고 필요합니다. –

+0

@RamyaBA 심지어 나는 똑같은 문제에 직면 해있다. –

답변

3

BitmapFactory는 벡터 드로어 블을로드 할 수 없습니다. VectorDrawable 또는 VectorDrawableCompat 클래스를 사용해야합니다. 벡터 드로어 블을로드하려면 xml 로더를 사용해야합니다.

리소스와 같은 일부 파서에는 미리 컴파일 된 바이너리 XML 파일이 필요합니다. drawable 리소스 디렉토리에 벡터 drawable을 넣으면 apk 파일에서 찾을 수 있습니다.

여기에 애셋에서로드하는 샘플이 있습니다. sd 카드에서로드하는 데 유사한 코드를 사용할 수 있어야합니다.

final XmlResourceParser parser = context.getAssets().openXmlResourceParser("assets/folder/image.xml"); 
drawable = VectorDrawableCompat.createFromXml(context.getResources(), parser); 

이 방법은 적어도 안드로이드 5.0

+1

Sd 카드 (외장형 저장 장치)의 경우 두 개가 아닙니다.! – Jorgesys

+0

요청 : https://issuetracker.google.com/issues/62435069 –

관련 문제