我有一个Android应用程序,其中包含一个外部dependend jar库.这个外部库包含一些png位图,我想在我的应用程序中的某些ImageView上显示它们.
查看我的应用程序的apk文件,我可以按预期在子目录("aq\img")中找到图像.
在ImageView上显示图像(洞察类路径)的最佳方法是什么.
我试过这个
ImageView imgView01 = (ImageView) findViewById(R.id.imageView1);
Drawable d = Drawable.createFromPath("aq/img/sample.png");
imgView01.setImageDrawable(d);
Run Code Online (Sandbox Code Playgroud)
还有这个
InputStream is = ClassLoader
.getSystemResourceAsStream("sample.png");
Bitmap bm = BitmapFactory.decodeStream(is);
imgView01.setImageBitmap(bm);
Run Code Online (Sandbox Code Playgroud)
但它不起作用(我真的不希望它那么简单).图像仍然是空的.
感谢帮助!
关心克劳斯
PNG 图像不是“系统资源”,因为 Android 上的系统资源是常规文件系统中的文件。您想要的图像位于 APK 存档内。你将能够使用getSystemResourceAsStream打开InputStream来读取 APK 存档的字节,但不能打开存档中的文件,除非您自己实现了提取文件的逻辑。
只需使用这个:
InputStream is = getClass().getClassLoader().getResourceAsStream("aq/img/sample.png");
Run Code Online (Sandbox Code Playgroud)
编辑:请注意,在 Android 上,传递给的名称getSystemResourceAsStream被视为相对于根 ( /) 的文件路径。由于 APK 存储在 中/data/app,因此要打开一个文件InputStream来读取 APK,您可以使用ClassLoader.getSystemResourceAsStream("data/app/PACKAGE-1.apk"),其中“PACKAGE”是您的应用程序的包。
| 归档时间: |
|
| 查看次数: |
7133 次 |
| 最近记录: |