在继承activity类之外的类中使用getResource()时候出现的问题解决
2014-09-26 00:57
549 查看
有几次写代码的时候都碰到了这个getResource()的使用,当时把它写在了一个普通类当中,用来加载assets当中的图片,但是代码报错。后来发现是由于这个方法是需要context的,但是最初急忙着写而没有仔细的理解,结果折腾半天也不知道怎么修改传递这个context过来,最后为了逃避这个问题,就把它放到了继承activity的类里面去了。
现在又遇到了这个问题,这下必须解决他了。
其实只要在方法调用连传context参数 或者在构造函数里面搞定 就行了:
大致代码如下:
在activity当中调用的代码:
现在又遇到了这个问题,这下必须解决他了。
其实只要在方法调用连传context参数 或者在构造函数里面搞定 就行了:
大致代码如下:
/** * 从assets是中加载图像资源 * 后期优化代码中的gridview 使用baseadapter的时候使用这种方式加载图片资源 * */ package com.example.changeyouvioce.util; import java.io.IOException; import java.io.InputStream; import com.example.changeyourvioce.VoiceChangeActivity; import android.content.Context; import android.content.res.AssetManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.util.Log; public class GridViewResource { private Context context; private final static int MAX_RESOURCE_LENGTH = 18; public Bitmap[] mBitmapArray = null; public GridViewResource(Context context){ this.context = context; } //将图像资源装载到bitmap数组 public Bitmap[] fillBitmapArray(){ String Name = "gridtn"; mBitmapArray = new Bitmap[MAX_RESOURCE_LENGTH]; for (int i = 0; i < MAX_RESOURCE_LENGTH; i++) { int nameNum = i; String fileName = Name + String.valueOf(nameNum); Log.e("fileName", fileName); mBitmapArray[i] = loadFromAsset(context, fileName); } return mBitmapArray; } //从assets加载图像资源 private Bitmap loadFromAsset(Context context,String fileName){ Bitmap mBitmap = null; Log.e("loadFromAsset", "execute"); AssetManager am = context.getResources().getAssets(); Log.e("loadFromAsset", "execute ??"); try { InputStream is = am.open(fileName); mBitmap = BitmapFactory.decodeStream(is); is.close(); } catch (IOException e) { e.printStackTrace(); } return mBitmap; } }
在activity当中调用的代码:
protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ~~~~~~~~~~~~~~~~~ mGridViewResource = new GridViewResource(this); mBitmap = mGridViewResource.fillBitmapArray(); ~~~~~ }
相关文章推荐
- 在使用SSIS设计脚本时候,出现的在PostExecute之外不能锁定变量集合进行读写访问的问题的解决
- 使用libtomcrypt时候出现无法找到rijndael_enc_desc问题解决方法
- 解决使用nvelocity时候template文件里面包含中文输出结果时候出现乱码的问题
- 在使用android studio过程中,使用gradle编译的时候总会出现一些问题,下面是几个常见问题的解决方法。
- rails 4.0 中使用 cap 发布的时候,出现 LD_LIBRARY_PATH 没有设置的问题 的解决办法
- AndroidStudio完美解决"Activity使用Handler时出现警告信息"的问题
- 终极解决:JQ jquery 在使用 animate 的时候出现抖动情况,Chrome、IE都会出现这个问题
- 使用myeclipse开发java,解决java中继承JFrame类出现The type JFrame is not accessible due to restriction的问题
- 关于使用SSM整合的时候,使用hibernate校验框架出现500异常问题解决
- Android中使用继承GDActivity出现的问题
- 如何解决ADO.NET访问Access数据库出现"操作必须使用一个可更新的查询"的问题
- 使用phpedit/cakephp中出现的乱码问题及解决
- 如何解决mid使用过程中出现的以下问题(无效的过程调用或参数: 'mid')
- 终于找到了在asp.net使用popcalendar.js 日历时候提示出现"缺少对象“的解决办法。
- 解决win2003里IIS运行ASP时出现请求资源在使用中的问题
- 如何解决mid使用过程中出现的以下问题(无效的过程调用或参数: 'mid')
- 开机的时候如果出现提示$home/.dmrc无法写入 问题解决方法
- 解决win2003里IIS运行ASP时出现请求资源在使用中的问题
- 在JBossPortal中使用MySQL5出现数据截断问题的解决方法
- 使用NetBean编程时候出现的问题