我有一个资产子文件夹和图像上面所有png都更大,我正在写一个来自Angular的混合应用程序所以我通过一个接口传递一个文件的名称来在一个活动中弹出它我只传递名称而不是extession。它适用于某些文件但不适用于其他文件(在我的情况下更大的文件)是有原因的吗???,我在下面使用这个基本代码,较小的文件resID有一个数字用于它出来的较大文件有问题的png确实以角度加载基本页面,我想弹出该图像的缩放。可能我可以在Drawable res文件夹中放置一个副本,但Angular需要它悬挂在我的资产上。
image = (TouchImageView) findViewById(R.id.cur_img);
if( getIntent().hasExtra("imageResName") ) // set it to passed image
{ // a popup pass in the image
String curResName =getIntent().getExtras().getString("imageResName");
// gte the di from a drawble ..it wprks
int resID = getResources().getIdentifier(curResName , "drawable", getPackageName());
image.setImageResource(resID);
}
更新:是的,该代码无法正常工作,我可以将SO答案放在哪里 我可能误解了它......这是可以使用的mod'ed代码
if( getIntent().hasExtra("imageResName") ) // set it to passed image
{ // a popup pass in the image
String curResName =getIntent().getExtras().getString("imageResName");
Bitmap bitmap=null;
try
{ // for image in: /assets/imagenes/xxx.png
AssetManager assetManager = getApplicationContext().getAssets();
InputStream istr = assetManager.open("imagenes/" + curResName + ".png" );
bitmap = BitmapFactory.decodeStream(istr);
istr.close();
}
catch (Exception ex)
{
bitmap = null;
}
finally
{
image.setImageBitmap(bitmap);
}