手机如何读取assets隐藏目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手机如何读取assets隐藏目录相关的知识,希望对你有一定的参考价值。

参考技术A   本文实例讲述了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 > cateList = new ArrayList<Map >();

  String[] list_image = null;

  try

  //得到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.length;++i)

  

  InputStream open = null;

  try

  String temp = "processedimages/"+list_image[i];

  open = context.getAssets().open(temp);

  Bitmap bitmap = BitmapFactory.decodeStream(open);

  Map map = new HashMap ();

  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) view;

  Bitmap bmp = (Bitmap) data;

  imageView.setImageBitmap(bmp);

  return true;

  

  return false;

  

  );

  这样就可以了。

  还有一种情况是,我们在非Activity类中读取assets文件下的内容,这个时候就得把调用者(Activity类)的context传递过去,然后在这个非Activity类中使用context.getAssets()方式调用就行了。

  举个简单例子:

  我们有一个HomeActivity,然后我们它里面调用GetData.initdata(HomeActivity.this).

  在GetData类的initdata方法肯定是这样定义的:

  复制代码 代码如下:public void initdata(Context context)

  

  //other codes...

  String[] list_image = null;

  try

  //得到assets/processedimages/目录下的所有文件的文件名,以便后面打开操作时使用

  list_image = context.getAssets().list("processedimages");//attention this line

   catch (IOException e1)

  

  e1.printStackTrace();

  

  //other codes.....

  

  因为getAssets方法是Context下的方法,在非Activity类中是不能直接使用的。

  希望本文所述对大家的Android程序设计有所帮助。

安卓手机如何读取外置sd卡

系统会自动读取插入的外置sd卡里的文件内容,你打开手机的文件管理器,在文件类型栏里点任意一种类型,比如视频,你就能看到sd卡里所有的视频文件了。

参考技术A 回答

您好,您手机如果是现在主流的android系统的话,可以去电子市场下个软件“文件管理器”,安装之后就可以直接读取sd卡上的内容了。

在手机上查看SD卡的内容:1,点击“文件管理”图标2,进入文件管理页面,点击“SD卡”选项3,进入SD卡文件列表(路径:/storage/sdcard1)4,如果查看照相机里的图片或录像,进入当前文件列表下的目录DCIM/Camera下,即可查看到图片或录像视频文件了

如果手机出现无法读取外置SD卡情况,可以尝试:1.重启手机2.检查SD卡插入是否到位或正确3.取出SD卡,用橡皮清洁SD卡的金属触点后,插入手机尝试4.更换一张SD卡试试(是否SD卡已老化或坏损)若问题依然存在,请您将机器送到就近的服务中心,由工程师检查机器

以上是关于手机如何读取assets隐藏目录的主要内容,如果未能解决你的问题,请参考以下文章

为什么安卓手机查看苹果手机照片不显示隐藏相册

Android assets文件夹

用VB实现隐藏进程

如何将android屏幕下方的虚拟按键隐藏掉

安卓手机如何隐藏应用图标?

安卓读取文件到hashmap