有什么贫民的机箱可以内置360冷排装机箱前面的

2102人阅读
Android开发(1714)
Android系统为每个新设计的程序提供了/assets目录,这个目录保存的文件可以打包在程序里。/res和/assets的不同点是,android不为/assets下的文件生成ID。如果使用/assets下的文件,需要指定文件的路径和文件名。下面这个例子,显示如何访问/assets下的内容。
在文件中/assets中建立/image子目录,将/res/drawable下的icon.png子目录拷贝到该目录中。在/assets子目录中建立readme.txt文件,文件中输入文本“hello,world!!!”
&?xml version=&1.0& encoding=&utf-8& ?&
&LinearLayout xmlns:android=&/apk/res/android&
android:orientation=&vertical&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent&
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:text=&@string/hello&
&EditText android:id=&@+id/firstId&
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:text=&@string/hello&
&EditText android:id=&@+id/secondId&
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:text=&@string/hello&
&/LinearLayout&
程序文件:
import android.app.A
import android.os.B
import java.io.ByteArrayOutputS
import java.io.IOE
import java.io.InputS
importandroid.app.A
import android.content.res.AssetM
importandroid.os.B
import android.util.L
import android.widget.EditT
publicclass GetAssets extends Activity {
private EditText firstF
private EditText secondF
publicvoid onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
Log.d(&show main.xml&,&ok &);
setContentView(R.layout.main );
Log.d (&show main.xml&,&ok&);
AssetManager assetManager = getAssets();
String[] files =
files = assetManager.list(&image&);
} catch (IOException e) {
Log.e (&tag&, e.getMessage());
firstField = (EditText) findViewById(R.id.firstId );
firstField.setText(Integer.toString (files.length)+&file.File name is&+ files[0]);
InputStream inputStream =
inputStream = assetManager.open(&readme.txt&);
} catch (IOException e) {
Log.e (&tag&, e.getMessage());
String s = readTextFile(inputStream);
secondField = (EditText) findViewById(R.id.secondId );
secondField.setText(s);
private String readTextFile(InputStream inputStream) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte buf[] = new byte [1024];
while ((len = inputStream.read(buf)) != -1) {
outputStream.write(buf, 0, len);
outputStream.close();
inputStream.close();
} catch (IOException e) {
return outputStream.toString();
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:7406665次
积分:68157
积分:68157
排名:第19名
原创:676篇
转载:1629篇
评论:2168条
赠人玫瑰,手有余香。分享技术,传递快乐。
如果您认为本博客不错,读后觉得有收获,不妨打赏赞助我一下,让我有动力继续写出高质量的博客。
推荐博客:
文章:29篇
阅读:67097
文章:74篇
阅读:2580272016年4月 移动开发大版内专家分月排行榜第二
2016年7月 移动开发大版内专家分月排行榜第三2015年12月 移动开发大版内专家分月排行榜第三
2015年11月 移动开发大版内专家分月排行榜第二
2015年11月 移动开发大版内专家分月排行榜第二
2015年11月 移动开发大版内专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。资源预加载的目的很明确,提升用户体验。当然就开发者而言,比较好的预加载实现方式还可以方便管理。 如果游戏很简单简单,资源很少很少,那么弄资源预加载就是费事,但是以下几种情况的话还是推荐使用:
1.资源数量大 音乐、图片、视频什么的,如果你的游戏这些东西太多,推荐使用
2.部分资源反复使用 有些资源会反复使用到,比如一些背景音乐,一些小图标Libgdx中的AssetManager AssetManager是libgdx提供的资源加载方案,详细的可以细致参考。
(libGdx是一个跨平台的2D/3D的游戏开发框架,它由Java/C/C++语言编写而成。它基于Apache License, Version 2.0[2]协议,对商业使用和非商业使用均免费。)
AssetManager使用很简单,先实例化一个。
AssetManager assetManager = new AssetManager();
加载资源时需要制定资源位置和资源类型,目前支持Pixmaps、Textures、BitmapFonts、TextureAtlases、TiledAtlases、TileMapRenderers、Music、Sound这些类型的资源。
使用方法: assetManager.load("data/img/bg.png", Texture.class);
assetManager.load("data/font/chinese.fnt", BitmapFont.class);
assetManager.load("data/music/op_head.ogg", Music.class);
assetManager.load("data/pack/task1.pack", TextureAtlases.class);
加载的时候还支持自定义参数,比如加载Texture时
TextureParameter textureParameter = new TextureParameter();
textureParameter.minFilter = TextureFilter.L
textureParameter.genMipMaps =
manager.load("data/img/bg.png", Texture.class, textureParameter);
大多数情况还是不用考虑自定义参数的。 & 执行了Load方法其实只是将预加载的资源载入了队列,实质上并没有加载什么,使用Update方法才会加载资源。 该方法有个返回值,当其为True时即加载完成,为False就表示还在加载。 如果需要一个比较准确的返回,比如当前加载到百分之多少了以方便绘制进度条,可以使用getProgress方法,该方法返回一个0到1之间的数字。 获取资源时候使用assetManager.get(位置,类型)即可,
比如 assetManager.get("data/img/bg.png", Texture.class);
assetManager.get("data/font/chinese.fnt", BitmapFont.class);
如果有需要也可以先检查一下 assetManager.isLoaded("data/img/bg.png") 使用时的一些注意事项 如果要取消预加载的话,调用finishLoading方法。 如果要销毁使用完的资源的话,调用unload方法。 还有一个比较重大的问题就是游戏被打断以后,部分资源需要重新加载,不然的话会出现无数报错。
阅读(...) 评论()1885人阅读
java(27)
http/xml/json解析(20)
获取assets下资源文件:
AssetManager assetManager = mContext.getAssets();
cates = ParseXML.parseCategory(assetManager.open(&category.data&,
AssetManager.ACCESS_STREAMING));
} catch (IOException e) {
e.printStackTrace();
ParseXML解析类:
package com.guozi.appstore.
import java.io.IOE
import java.io.InputS
import java.util.ArrayL
import java.util.L
import org.apache.http.protocol.HTTP;
import org.xmlpull.v1.XmlPullP
import org.xmlpull.v1.XmlPullParserE
import org.xmlpull.v1.XmlPullParserF
import android.util.L
import com.guozi.appstore.bean.CategoryE
public class ParseXML {
public static List&CategoryEntity& parseCategory(InputStream inStream) {
List&CategoryEntity& cates =
CategoryEntity cate =
XmlPullParser parser = getXmlParser(inStream);
Log.i(&Dust&, &parser = & + parser);
if (parser == null) {
cates = new ArrayList&CategoryEntity&();
int event = parser.getEventType();
while (event != XmlPullParser.END_DOCUMENT) {
switch (event) {
case XmlPullParser.START_TAG:
if (&foobar&.equals(parser.getName())) {
cate = new CategoryEntity();
} else if(&categorytype&.equals(parser.getName())){
cate.setCategory(parser.nextText());
} else if (&name&.equals(parser.getName())) {
cate.setName(parser.nextText());
} else if (&url&.equals(parser.getName())) {
cate.setUrl(parser.nextText());
} else if (&src&.equals(parser.getName())) {
cate.setLogo(parser.nextText());
case XmlPullParser.END_TAG:
if (&foobar&.equals(parser.getName())) {
cates.add(cate);
event = parser.next();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
* 获取Pull解析器
* @param inputStream
public static XmlPullParser getXmlParser(InputStream inputStream) {
XmlPullParserF
XmlPullParser xmlParser =
if (inputStream == null) {
return xmlP
factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
xmlParser = factory.newPullParser();
xmlParser.setInput(inputStream, HTTP.UTF_8);
} catch (XmlPullParserException e1) {
e1.printStackTrace();
return xmlP
* 解析类别信息
* @param inStream
public static List&CategoryInfo& parseCategory(InputStream inStream) {
List&CategoryInfo& cates =
CategoryInfo cate =
XmlPullParser parser = getXmlParser(inStream);
Log.i(&Dust&, &parser = & + parser);
if (parser == null) {
cates = new ArrayList&CategoryInfo&();
int event = parser.getEventType();
while (event != XmlPullParser.END_DOCUMENT) {
switch (event) {
case XmlPullParser.START_TAG:
if (&foobar&.equals(parser.getName())) {
cate = new CategoryInfo();
} else if(&categorytype&.equals(parser.getName())){
cate.setCategoryType(parser.nextText());
} else if (&name&.equals(parser.getName())) {
cate.setCategoryName(parser.nextText());
} else if (&url&.equals(parser.getName())) {
cate.setCategoryUrl(parser.nextText());
} else if (&src&.equals(parser.getName())) {
cate.setCategoryTypeBg(parser.nextText());
case XmlPullParser.END_TAG:
if (&foobar&.equals(parser.getName())) {
cates.add(cate);
event = parser.next();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
* 解析子分类页面信息和应用列表
* @param inStream
public static Object[] parseSubCategoryFirstPageAppinfos(
InputStream inStream) {
if(inStream == null)
Object[] objsArr =
PageInfo pageInfo =
AppInfo appInfo =
List&AppInfo& appInfos =
XmlPullParser parser = getXmlParser(inStream);
int event = parser.getEventType();
while (event != XmlPullParser.END_DOCUMENT) {
switch (event) {
case XmlPullParser.START_TAG:
if (&INFO&.equalsIgnoreCase(parser.getName())) {
pageInfo = new PageInfo();
objsArr = new Object[2];
} else if (&COUNT&.equalsIgnoreCase(parser.getName())) {
pageInfo.setPageItemTotal(Utils.parserStrToInt(parser
.nextText()));
} else if (&PAGECOUNT&.equalsIgnoreCase(parser.getName())) {
pageInfo.setPageItemNum(Utils.parserStrToInt(parser
.nextText()));
} else if (&PAGE&.equalsIgnoreCase(parser.getName())) {
pageInfo.setPageCurNum(Utils.parserStrToInt(parser
.nextText()));
} else if (&PAGESIZE&.equalsIgnoreCase(parser.getName())) {
pageInfo.setPageTotal(Utils.parserStrToInt(parser
.nextText()));
} else if (&ROWS&.equalsIgnoreCase(parser.getName())) {
appInfos = new ArrayList&AppInfo&();
} else if (&foobar&.equalsIgnoreCase(parser.getName())) {
appInfo = new AppInfo();
} else if (&id&.equalsIgnoreCase(parser.getName())) {
appInfo.setAppId(parser.nextText());
} else if (&name&.equalsIgnoreCase(parser.getName())) {
appInfo.setAppName(parser.nextText());
} else if (&ming&.equalsIgnoreCase(parser.getName())) {
appInfo.setAppIconUrl(parser.nextText());
} else if (parser.getName().equalsIgnoreCase(&score&)) {
appInfo.setAppScore(Utils.parserStrToFloat(parser
.nextText()));
} else if (parser.getName().equalsIgnoreCase(&price&)) {
appInfo.setAppPrice(Utils.parserStrToFloat(parser
.nextText()));
} else if (parser.getName().equalsIgnoreCase(&type&)) {
appInfo.setAppType(Utils.parserStrToInt(parser.nextText()));
} else if (parser.getName().equalsIgnoreCase(&bb&)) {
appInfo.setAppVersionName(parser.nextText());
} else if (parser.getName().equalsIgnoreCase(&packageName&)) {
appInfo.setAppPackageName(parser.nextText());
} else if (parser.getName().equalsIgnoreCase(&versioncode&)) {
appInfo.setAppVersionCode(Utils.parserStrToInt(parser
.nextText()));
} else if (parser.getName().equalsIgnoreCase(&size&)) {
appInfo.setAppSize(parser.nextText());
} else if (parser.getName().equalsIgnoreCase(&updatetime&)) {
appInfo.setAppUpdateTime(parser.nextText());
} else if (parser.getName().equalsIgnoreCase(
&downloadCount&)) {
appInfo.setAppDownloadNum(Utils.parserStrToInt(parser
.nextText()));
} else if (parser.getName().equalsIgnoreCase(&url&)) {
appInfo.setAppDetailPageUrl(parser.nextText());
case XmlPullParser.END_TAG:
if (&INFO&.equalsIgnoreCase(parser.getName())) {
objsArr[0] = pageI
} else if (&foobar&.equalsIgnoreCase(parser.getName())) {
appInfos.add(appInfo);
} else if (&ROWS&.equalsIgnoreCase(parser.getName())) {
objsArr[1] = appI
event = parser.next();
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
return objsA
public static Object[] parseSpecialProjectApps(InputStream inStream) {
Object[] objs =
PageInfo pageInfo =
List&AppEntity& appInfos =
AppEntity appInfo =
XmlPullParser parser = getXmlParser(inStream);
int event = parser.getEventType();
while (event != XmlPullParser.END_DOCUMENT) {
switch (event) {
case XmlPullParser.START_TAG:
if (&data&.equalsIgnoreCase(parser.getName())) {
objs = new Object[2];
} else if (&INFO&.equalsIgnoreCase(parser.getName())) {
pageInfo = new PageInfo();
} else if (&COUNT&.equalsIgnoreCase(parser.getName())) {
pageInfo.setPageItemTotal(Utils.parserStrToInt(parser
.nextText()));
} else if (&PAGECOUNT&.equalsIgnoreCase(parser.getName())) {
pageInfo.setPageItemNum(Utils.parserStrToInt(parser
.nextText()));
} else if (&PAGE&.equalsIgnoreCase(parser.getName())) {
pageInfo.setPageCurNum(Utils.parserStrToInt(parser
.nextText()));
} else if (&PAGESIZE&.equalsIgnoreCase(parser.getName())) {
pageInfo.setPageTotal(Utils.parserStrToInt(parser
.nextText()));
} else if (&pagegroupname&.equalsIgnoreCase(parser
.getName())) {
pageInfo.setPageType(parser.nextText());
} else if (&ROWS&.equalsIgnoreCase(parser.getName())) {
appInfos = new ArrayList&AppEntity&();
} else if (&foobar&.equalsIgnoreCase(parser.getName())) {
appInfo = new AppEntity();
} else if (&id&.equalsIgnoreCase(parser.getName())) {
//appInfo.setAppId(parser.nextText());
appInfo.setId(Utils.parserStrToLong(parser.nextText()));
} else if (&name&.equalsIgnoreCase(parser.getName())) {
appInfo.setName(parser.nextText());
} else if (&ming&.equalsIgnoreCase(parser.getName())) {
//appInfo.setAppIconUrl(parser.nextText());
appInfo.setLogo(parser.nextText());
} else if (&score&.equalsIgnoreCase(parser.getName())) {
//appInfo.setAppScore(Utils.parserStrToFloat(parser.nextText()));
appInfo.setScore(Utils.parserStrToFloat(parser.nextText()));
} else if (&price&.equalsIgnoreCase(parser.getName())) {
//appInfo.setAppPrice(Utils.parserStrToFloat(parser.nextText()));
appInfo.setPrice(Utils.parserStrToFloat(parser.nextText()));
} else if (&type&.equalsIgnoreCase(parser.getName())) {
//appInfo.setAppType(Utils.parserStrToInt(parser.nextText()));
appInfo.setType(Utils.parserStrToInt(parser.nextText()));
} else if (&bb&.equalsIgnoreCase(parser.getName())) {
appInfo.setVersionName(parser.nextText());
} else if (&packageName&.equalsIgnoreCase(parser.getName())) {
appInfo.setPackageName(parser.nextText());
} else if (&versioncode&.equalsIgnoreCase(parser.getName())) {
appInfo.setVersionCode(Utils.parserStrToInt(parser
.nextText()));
} else if (&size&.equalsIgnoreCase(parser.getName())) {
appInfo.setSize(parser.nextText());
} else if (&updatetime&.equalsIgnoreCase(parser.getName())) {
//appInfo.setAppUpdateTime(parser.nextText());
appInfo.setUpdateTime(Utils.parserStrToLong(parser.nextText()));
} else if (&downloadCount&.equalsIgnoreCase(parser
.getName())) {
//appInfo.setAppDownloadNum(Utils.parserStrToInt(parser.nextText()));
appInfo.setDownloadTimes(Utils.parserStrToLong(parser.nextText()));
} else if (&url&.equalsIgnoreCase(parser.getName())) {
//appInfo.setAppDownloadUrl(parser.nextText());
appInfo.setUrl(parser.nextText());
case XmlPullParser.END_TAG:
if (&INFO&.equalsIgnoreCase(parser.getName())) {
objs[0] = pageI
} else if (&foobar&.equalsIgnoreCase(parser.getName())) {
appInfos.add(appInfo);
} else if (&ROWS&.equalsIgnoreCase(parser.getName())) {
objs[1] = appI
event = parser.next();
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
public static List&CategoryInfo& parseSpecialProjects(InputStream inStream) {
List&CategoryInfo& cates =
CategoryInfo cate =
XmlPullParser parser = getXmlParser(inStream);
int event = parser.getEventType();
while (event != XmlPullParser.END_DOCUMENT) {
switch (event) {
case XmlPullParser.START_TAG:
if (&data&.equalsIgnoreCase(parser.getName())) {
cates = new ArrayList&CategoryInfo&();
} else if (&foobar&.equalsIgnoreCase(parser.getName())) {
cate = new CategoryInfo();
} else if (&name&.equalsIgnoreCase(parser.getName())) {
cate.setCategoryName(parser.nextText());
} else if (&url&.equalsIgnoreCase(parser.getName())) {
cate.setCategoryUrl(parser.nextText());
} else if (&img&.equalsIgnoreCase(parser.getName())) {
cate.setCategoryTypeBg(parser.nextText());
case XmlPullParser.END_TAG:
if (&foobar&.equalsIgnoreCase(parser.getName())) {
cates.add(cate);
event = parser.next();
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
public static final Object[] getAppInfos(InputStream inputStream) {
Object[] objects =
PageInfo pageInfo =
ArrayList&AppInfo& appInfoArray =
XmlPullParser parser =
parser = getXmlParser(inputStream);
if (parser == null) {
int eventType = parser.getEventType();
AppInfo appInfo =
String name =
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
case XmlPullParser.START_TAG:
name = parser.getName();
if (name.equalsIgnoreCase(&data&)) {
objects = new Object[2];
} else if ((name.equalsIgnoreCase(&INFO&))
&& pageInfo == null) {
pageInfo = new PageInfo();
} else if (name.equalsIgnoreCase(&key&)) {
} else if (name.equalsIgnoreCase(&COUNT&)) {
pageInfo.setPageCurItemNum(Utils
.parserStrToInt(parser.nextText()));
} else if (name.equalsIgnoreCase(&PAGECOUNT&)) {
pageInfo.setPageItemNum(Utils.parserStrToInt(parser
.nextText()));
} else if (name.equalsIgnoreCase(&PAGE&)) {
pageInfo.setPageCurNum(Utils.parserStrToInt(parser
.nextText()));
} else if (name.equalsIgnoreCase(&PAGESIZE&)) {
pageInfo.setPageTotal(Utils.parserStrToInt(parser
.nextText()));
} else if (name.equalsIgnoreCase(&ROWS&)) {
appInfoArray = new ArrayList&AppInfo&(20);
} else if (name.equalsIgnoreCase(&foobar&)) {
appInfo = new AppInfo();
} else if (name.equalsIgnoreCase(&id&)) {
appInfo.setAppId(parser.nextText());
} else if (name.equalsIgnoreCase(&name&)) {
appInfo.setAppName(parser.nextText());
} else if (name.equalsIgnoreCase(&ming&)) {
appInfo.setAppIconUrl(parser.nextText());
} else if (name.equalsIgnoreCase(&score&)) {
appInfo.setAppScore(Utils.parserStrToFloat(parser
.nextText()));
} else if (name.equalsIgnoreCase(&price&)) {
appInfo.setAppPrice(Utils.parserStrToFloat(parser
.nextText()));
} else if (name.equalsIgnoreCase(&type&)) {
appInfo.setAppType(Utils.parserStrToInt(parser.nextText()));
} else if ((name.equalsIgnoreCase(&size&))) {
appInfo.setAppSize(parser.nextText());
} else if (name.equalsIgnoreCase(&updatetime&)) {
appInfo.setAppUpdateTime(parser.nextText());
} else if (name.equalsIgnoreCase(&downloadCount&)) {
appInfo.setAppDownloadNum(Utils.parserStrToInt(parser
.nextText()));
} else if (name.equalsIgnoreCase(&desc&)) {
appInfo.setAppDescription(parser.nextText());
} else if (name.equalsIgnoreCase(&url&)) {
appInfo.setAppDownloadUrl(parser.nextText());
} else if (name.equalsIgnoreCase(&bb&)) {
appInfo.setAppVersionName(parser.nextText());
} else if (name.equalsIgnoreCase(&sygj&)) {
appInfo.setAppRequired(parser.nextText());
} else if (name.equalsIgnoreCase(&kfz&)) {
appInfo.setAppOwn(parser.nextText());
} else if (name.equalsIgnoreCase(&versionCode&)) {
appInfo.setAppVersionCode(Utils.parserStrToInt(parser
.nextText()));
} else if (name.equalsIgnoreCase(&packageName&)) {
appInfo.setAppPackageName(parser.nextText());
case XmlPullParser.END_TAG:
if (parser.getName().equalsIgnoreCase(&foobar&)) {
appInfoArray.add(appInfo);
} else if (parser.getName().equalsIgnoreCase(&INFO&)) {
objects[0] = pageI
pageInfo =
} else if (parser.getName().equalsIgnoreCase(&ROWS&)) {
objects[1] = appInfoA
appInfoArray =
eventType = parser.next();
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (NullPointerException e) {
e.printStackTrace();
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1248505次
积分:11411
积分:11411
排名:第974名
原创:163篇
转载:212篇
评论:148条
(1)(2)(4)(4)(2)(2)(3)(2)(10)(1)(1)(1)(3)(1)(1)(7)(8)(7)(7)(1)(1)(14)(14)(2)(1)(8)(50)(6)(3)(11)(23)(25)(14)(7)(29)(24)(25)(20)(27)(9)Android读取assets目录下的所有图片并显示的方法-爱编程
Android读取assets目录下的所有图片并显示的方法
本文实例讲述了Android读取assets目录下的所有图片并显示的方法。分享给大家供大家参考。具体方法分析如下:
在assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。
1. 先在Activity里面调用getAssets() 来获取AssetManager引用。
2. 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream。
3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close() 。
4.调用AssetManager.close() 关闭AssetManager。
需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的操作。
下面看一下在Activity中使用的示例代码:
复制代码 代码如下:List&Map&String, Object&& cateList = new ArrayList&Map&String, Object&&();&
String[] list_image =&
//得到assets/processedimages/目录下的所有文件的文件名,以便后面打开操作时使用&
&&& list_image = context.getAssets().list("processedimages");&
} catch (IOException e1) {&
&&& // TODO Auto-generated catch block&
&&& e1.printStackTrace();&
for(int i=0;i&list_image.++i)&
&&& InputStream open =&
&&& try {&
& String temp = "processedimages/"+list_image[i];&
& open = context.getAssets().open(temp);&
& Bitmap bitmap = BitmapFactory.decodeStream(open);&
& Map&String, Object& map = new HashMap&String, Object&();&
& map.put("name", list_image[i]);&
& map.put("iv", bitmap);&
& map.put("bg", R.drawable.phone_vip_yes);&
& map.put("cate_id",i);&
& cateList.add(map);&
& // Assign the bitmap to an ImageView in this layout&
&&& } catch (IOException e) {&
& e.printStackTrace();&
&&&&& } finally {&
& if (open != null) {&
&&& try {&
&&&&& open.close();&
&&& } catch (IOException e) {&
&&&&& e.printStackTrace();&
这样所有的map中的关键字“iv"处理论上就保存了我们读取的bitmap,可以结果并非如此,大家应该注意到了在”bg“关键字处我们也保存了一个图片,只不过它是通过R.drawable.方式获取的,实验证明这种方式是可以成功读取并显示的。为什么从assets中读取的bitmap不能显示呢?
解决办法是:
实现 ViewBinder接口,对两种的资源id和bitmap 情况进行说明:
复制代码 代码如下:adapter.setViewBinder(new ViewBinder() {&
&&&&&&&&&&&&&
&&& @Override&
&&& public boolean setViewValue(&
&&&& View view,&
&&&& Object data,&
&&&& String textRepresentation) {&
&// TODO Auto-generated method stub&
& if((view instanceof ImageView) && (data instanceof Bitmap)) {&&&
&&ImageView imageView = (ImageView)&&&
&&Bitmap bmp = (Bitmap)&&&
&&imageView.setImageBitmap(bmp);&&&
这样就可以了。
还有一种情况是,我们在非Activity类中读取assets文件下的内容,这个时候就得把调用者(Activity类)的context传递过去,然后在这个非Activity类中使用context.getAssets()方式调用就行了。
举个简单例子:
我们有一个HomeActivity,然后我们它里面调用GetData.initdata(HomeActivity.this).
在GetData类的initdata方法肯定是这样定义的:
复制代码 代码如下:public void initdata(Context context)
//other codes...
&&&&& String[] list_image =
&&&& try {
&&&& //得到assets/processedimages/目录下的所有文件的文件名,以便后面打开操作时使用
&&&&&&&&&&&&&&& list_image = context.getAssets().list("processedimages");//attention this line
&&&&&&&&& } catch (IOException e1)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& e1.printStackTrace();
&&&&&&&&&&& }
&&&&& //other codes.....
因为getAssets方法是Context下的方法,在非Activity类中是不能直接使用的。
希望本文所述对大家的Android程序设计有所帮助。
版权所有 爱编程 (C) Copyright 2012. . All Rights Reserved.
闽ICP备号-3
微信扫一扫关注爱编程,每天为您推送一篇经典技术文章。

我要回帖

更多关于 水冷机箱排行2017 的文章

 

随机推荐