내부적으로 정적 리소스 (이미지/xml 등)가 필요한 안드로이드 라이브러리 프로젝트를 빌드 중입니다.안드로이드 라이브러리 프로젝트에서 리소스에 액세스하는 방법
그런 다음이 리소스를 어디에 둘 수 있으며 리소스에 액세스 할 수 있는지 궁금합니다.
자원을 assets
폴더에 넣었습니다. 그리고 자원에 액세스 할 AssetManager를 사용 W/System.err(19583): java.io.FileNotFoundException: t.jpg
문제가 무엇인가
public class DataProvider {
byte[] getDrawableData(int num) {
AssetManager am = Resources.getSystem().getAssets();
InputStream is = null;
try {
is = am.open("t.jpg");
} catch (IOException e) {
return "".getBytes();
}
if (is != null) {
Drawable dw = Drawable.createFromStream(is, null);
Bitmap bm = ((BitmapDrawable) dw).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, stream);
return stream.toByteArray();
}
return "".getBytes();
}
}
그러나 나는 오류가 발생했습니다?
Sankar V
으로
라이브러리 프로젝트는 원시 자산을 지원하지 않습니다 말했다. 그렇다면 나는 그 숫자를 res
폴더 밑에 넣어야 할 것 같습니다.
그러나 내가 원하는 것을 얻을 수없는 Resources.getSystem().getResources()....
메서드를 사용하려고했습니다. 그리고 사람들은이 방법이 애플리케이션 레벨 리소스가 아닌 시스템 레벨 리소스 만 가질 수 있다고 말했다.
이것이 사실이라면. 리소스를 얻고 자하는 곳에서 Context
개체의 참조를 보유해야한다는 것을 의미합니까?
해결책으로 제공 한 링크를 완전히 확인 했습니까? "네가 도서관의 패키지 이름을 안다면 할 수있어."하고 해결책이있다. –
나는 그 글을 읽었다. 하지만'context' 객체에 접근 할 수 없기 때문에 getResources() ....를 호출 할 수 없습니다. – hguser
DataProvider 클래스가 어디에 있는지 확인하고 싶습니다. 라이브러리 프로젝트 또는 응용 프로그램 프로젝트 –