【问题标题】:Where do I put the image resource file? BitmapFactory.decodeFile()我将图像资源文件放在哪里? BitmapFactory.decodeFile()
【发布时间】:2013-04-11 02:32:38
【问题描述】:

我正在尝试使用这个:

BitmapFactory.decodeFile("logo.jpg")

与我的 apk 相比,我似乎没有将文件:logo.jpg 放在正确的位置。应该去哪里?

附:我得到的错误是:

编辑

我现在正在使用这个:>BitmapFactory.decodeResource(getActivity().getResources(),"logo.jpg")

现在我得到一个编译器错误,上面写着:

类型 Brick 的方法 getActivity() 未定义 (Brick 是类的名称)

我不在乎哪种解决方案有效,只要其中一个有效

【问题讨论】:

  • 目前您的徽标文件在哪里?
  • 好吧,为了运气好,我把副本放在了几个地方;)。在 bin 和 bin\res 和 bin\res\drawable-hdpi 和 bin\res\drawable-mdpi 和 bin\res\drawable-xhdpi 和 bin\res\drawable-xxhdpi 中

标签: android bitmap resources directory bitmapfactory


【解决方案1】:

我认为您正在尝试将 JPG 文件放入您的项目并通过 Java 代码加载,对吗?

如果是这样,您需要将您的 logo.jpg 放入您的 assets 文件夹中,

并使用与此 SO 答案所述类似的方法加载它:

https://stackoverflow.com/a/8502231/763459


为方便起见,我将代码粘贴如下:

InputStream bitmap=null;

try {
    bitmap=getAssets().open("logo.png");
    Bitmap bit=BitmapFactory.decodeStream(bitmap);
    img.setImageBitmap(bit);
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if(bitmap!=null)
    bitmap.close();
}

【讨论】:

    【解决方案2】:

    你想把你的“logo.jpg”文件放在哪里?

    1. 如果你想把它放在drawable文件夹中,那么使用:

      BitmapFactory.decodeResource(getResources(), R.drawable.logo);
      
    2. 如果您想将其放在设备内存中的某个位置,请使用:

      BitmapFactory.decodeResource("/sdcard/logo.jpg");
      

    这里有一些指南可以帮助您开始:http://developer.android.com/reference/android/graphics/BitmapFactory.html

    【讨论】:

    • 当我尝试 getResources() 时,我收到一条错误消息:getResources() 未定义。有没有我需要的特定用途?
    • 试试getActivity().getResources()
    • 除了 getActivity 未定义外,同样的事情
    • 好吧,这可能会打扰您一分钟,但是您可以发布您的代码吗?这可能会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    • 2011-11-28
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    相关资源
    最近更新 更多