获取Drawable图像路径

时间:2015-06-16 13:49:56

标签: android gallery android-imageview android-gallery

我正在Fragment Activity中实施水平图库,但我无法获取图片,因此返回NullPointerException

LinearLayout myGallery;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
        mParam1 = getArguments().getString(ARG_PARAM1);
        mParam2 = getArguments().getString(ARG_PARAM2);
    }
    myGallery = (LinearLayout) getActivity().findViewById(R.id.mygallery);

    String targetPath = "assets/";

    Toast.makeText(getActivity(), targetPath, Toast.LENGTH_LONG).show();
    File targetDirector = new File(targetPath);

    File[] files = targetDirector.listFiles();
    for (File file : files){ //NullPointerException here
        myGallery.addView(insertPhoto(file.getAbsolutePath()));
    }
}

这是我的图片的路径:

enter image description here

for循环NullPointerException

for (File file ; files){ ...

到达我的文件夹的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

正确的方法是......将您的图片放入assets文件夹(或raw)。
不在res

创建assets文件夹(如果尚未存在) 在res相同级别不在其中

要获取您的资源,请使用类似的内容(在这种情况下,该文件位于gfx下的assets文件夹下):

final InputStream is = getApplicationContext().getAssets().open("gfx/" + fileName);
final Drawable drw = Drawable.createFromStream(is, null);

你有assets

的抽奖

如果您想将资源直接放入assets而不是添加文件夹,只需更改此内容

getApplicationContext().getAssets().open("gfx/" + fileName);

getApplicationContext().getAssets().open(fileName);