- 浏览: 1225741 次
- 性别:
- 来自: 荆州
文章分类
- 全部博客 (396)
- Android 基础 (72)
- Java 基础 (42)
- Android(动画效果) (26)
- Android(自定义组件) (13)
- Android(手机服务) (38)
- Android(网络相关) (27)
- Android(多媒体) (12)
- Android(小技巧) (30)
- Android(用户界面) (39)
- 基础概念 (24)
- Android组件学习 (21)
- Android数据库相关 (11)
- 生活杂谈 (10)
- 调试技巧部分 (8)
- Sql Server相关 (1)
- Android(xml相关) (2)
- Android 开发 (12)
- 韩语学习 (4)
- Mac添加环境变量的三种方法 (1)
- iPhone开发 (1)
- Android Studio (1)
最新评论
-
ppfbsar:
下载网络文件到SD卡上 -
851228082:
好文!彻底理解单类型导入与按需导入的区别了。还有一点可以通过 ...
谈java的导入(import) -
麦田的设计者:
老乡啊
sqlite 数据库保存图片 -
sf_dream:
我要是读写list、map之类的集合呢
ObjectOutputStream和ObjectInputStream类的学习 -
xfyunyun:
博主,请问webview加载html字符串时怎么进行缓存处理呢 ...
WebView使用总结2(加载HTML内容形式的String)
1.main.java文件:
2. MyAdapter.java适配器类:
3.main.xml文件很简单:
4.显示item的xml:
package com.test; import java.io.File; import java.util.ArrayList; import java.util.List; import android.app.ListActivity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.ListView; import android.widget.TextView; public class Main extends ListActivity { /* * 变量声明 items:存放显示的名称 paths:存放文件路径 rootPath:起始目录 */ private List<String> items = null; private List<String> paths = null; private String rootPath = "/"; private TextView mPath; protected void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); mPath = (TextView) findViewById(R.id.mPath); getFileDir(rootPath); } /* 取得文件架构的方法 */ private void getFileDir(String filePath) { /* 设置目前所在路径 */ mPath.setText(filePath); items = new ArrayList<String>(); paths = new ArrayList<String>(); File f = new File(filePath); File[] files = f.listFiles(); if (!filePath.equals(rootPath)) { /* 第一笔设置为[回到根目录] */ items.add("b1"); paths.add(rootPath); /* 第二笔设置为[回到上一层] */ items.add("b2"); paths.add(f.getParent()); } if (files != null) { /* 将所有文件添加ArrayList中 */ for (int i = 0; i < files.length; i++) { File file = files[i]; items.add(file.getName()); paths.add(file.getPath()); } } /* 使用自定义的MyAdapter来将数据传入ListActivity */ setListAdapter(new MyAdapter(this, items, paths)); } /* 设置ListItem被点击时要做的动作 */ protected void onListItemClick(ListView l, View v, int position, long id) { File file = new File(paths.get(position)); if (file.isDirectory()) { /* 如果是文件夹就再运行getFileDir() */ getFileDir(paths.get(position)); } else { /* 如果是文件就运行openFile() */ openFile(file); } } /* 在手机上打开文件的方法 */ private void openFile(File f) { Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW); /* 调用getMIMEType()来取得MimeType */ String type = getMIMEType(f); /* 设置intent的file与MimeType */ intent.setDataAndType(Uri.fromFile(f), type); startActivity(intent); } /* 判断文件MimeType的方法 */ private String getMIMEType(File f) { String type = ""; String fName = f.getName(); /* 取得扩展名 */ String end = fName .substring(fName.lastIndexOf(".") + 1, fName.length()) .toLowerCase(); /* 依附档名的类型决定MimeType */ if (end.equals("m4a") || end.equals("mp3") || end.equals("mid") || end.equals("xmf") || end.equals("ogg") || end.equals("wav")) { type = "audio"; } else if (end.equals("3gp") || end.equals("mp4")) { type = "video"; } else if (end.equals("jpg") || end.equals("gif") || end.equals("png") || end.equals("jpeg") || end.equals("bmp")) { type = "image"; } else { /* 如果无法直接打开,就跳出软件列表给用户选择 */ type = "*"; } type += "/*"; return type; } }
2. MyAdapter.java适配器类:
package com.test; import java.io.File; import java.util.List; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; /* 自定义的Adapter,继承android.widget.BaseAdapter */ public class MyAdapter extends BaseAdapter { /* * 变量声明 mIcon1:回到根目录的图文件 mIcon2:回到上一层的图档 mIcon3:文件夹的图文件 mIcon4:文件的图档 */ private LayoutInflater mInflater; private Bitmap mIcon1; private Bitmap mIcon2; private Bitmap mIcon3; private Bitmap mIcon4; private List<String> items; private List<String> paths; /* MyAdapter的构造器,传入三个参数 */ public MyAdapter(Context context, List<String> it, List<String> pa) { /* 参数初始化 */ mInflater = LayoutInflater.from(context); items = it; paths = pa; mIcon1 = BitmapFactory.decodeResource(context.getResources(), R.drawable.back01); mIcon2 = BitmapFactory.decodeResource(context.getResources(), R.drawable.back02); mIcon3 = BitmapFactory.decodeResource(context.getResources(), R.drawable.folder); mIcon4 = BitmapFactory.decodeResource(context.getResources(), R.drawable.doc); } /* 因继承BaseAdapter,需覆盖以下方法 */ public int getCount() { return items.size(); } public Object getItem(int position) { return items.get(position); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { /* 使用自定义的file_row作为Layout */ convertView = mInflater.inflate(R.layout.file_row, null); /* 初始化holder的text与icon */ holder = new ViewHolder(); holder.text = (TextView) convertView.findViewById(R.id.text); holder.icon = (ImageView) convertView.findViewById(R.id.icon); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } File f = new File(paths.get(position).toString()); /* 设置[回到根目录]的文字与icon */ if (items.get(position).toString().equals("b1")) { holder.text.setText("Back to /"); holder.icon.setImageBitmap(mIcon1); } /* 设置[回到上一层]的文字与icon */ else if (items.get(position).toString().equals("b2")) { holder.text.setText("Back to .."); holder.icon.setImageBitmap(mIcon2); } else {//设置[文件或文件夹]的文字与icon holder.text.setText(f.getName()); if (f.isDirectory()) { holder.icon.setImageBitmap(mIcon3); } else { holder.icon.setImageBitmap(mIcon4); } } return convertView; } /* class ViewHolder */ private class ViewHolder { TextView text; ImageView icon; } }
3.main.xml文件很简单:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="@drawable/white"> <TextView android:id="@+id/mPath" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="5px" android:textSize="18sp" android:textColor="@drawable/blue"> </TextView> <ListView android:id="@android:id/list" android:layout_width="wrap_content" android:layout_height="wrap_content"> </ListView> </LinearLayout>
4.显示item的xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:id="@+id/icon" android:layout_width="30dip" android:layout_height="30dip"> </ImageView> <TextView android:id="@+id/text" android:layout_gravity="center_vertical" android:layout_width="0dip" android:layout_weight="1.0" android:layout_height="wrap_content" android:textColor="@drawable/black"> </TextView> </LinearLayout>
- drawable-hdpi.rar (16.4 KB)
- 下载次数: 36
发表评论
-
Android Studio一些使用快捷键
2016-12-17 10:17 68371.command+delete 删除一行代码 2.co ... -
Freeline快速集成
2016-11-11 16:30 78851. Freeline是什么? Freelin ... -
android:installLocation简析
2016-10-08 16:42 6615在Froyo(android 2.2,API Level:8) ... -
防止Service被系统轻易回收
2013-11-09 17:14 7659最近在使用android 4.1系统的时候,发现在手机休眠一段 ... -
手机浏览器打开应用或应用市场
2013-10-17 14:54 2087当在项目中出现下列情形: 应用开发商想对手机注册用 ... -
ListView显示不同布局(模拟ExpandListView)
2013-09-12 15:05 5983public class MainActivity ext ... -
多点触控之MotionEvent.ACTION_MASK作用
2013-07-23 14:49 2116ACTION_MASK在Android中是应用于多点触摸操作, ... -
Using Ant to Automate Building Android Applications
2013-05-23 13:32 2119Using Ant to Automate Building ... -
Android Bitmap getByteCount和getRowBytes
2013-05-03 11:16 2461Bitmap关于内存占用的API 1、getRowB ... -
音频功能实现
2013-04-25 14:49 12041.音频PCM转SPX格式:http://blog.csdn. ... -
MAC下Android的Eclipse开发环境的搭建
2013-04-20 09:42 1181一.Eclipse的下载 ... -
屏幕点亮和关闭广播监听
2013-04-07 21:49 2668private void registerScreenActi ... -
mac上配置adb
2013-04-06 17:50 1369问:为什么要配置ADB ? 答:不配置的话,每次用到ADB都要 ... -
Notification用法复习(3.0以后版本)
2012-11-04 11:33 3221使用Notification的示例代码: public c ... -
Android应用icon图标
2012-07-07 15:02 1638对于Android平台来说,不同分辨率下Icon的大小设计有着 ... -
Android软键盘控制
2012-05-12 17:08 9324整个输入法框架(IMF)结构的核心API,应用程序之间进行调度 ... -
键盘自动弹出
2012-04-25 17:28 1158Timer timer = new Timer(); ... -
Eclipse 默认打开Android xml 布局
2012-04-21 17:02 2127今天新装了Android开发环境后,新建一个工程,打开xml发 ... -
苹果开发android 第一步
2012-04-14 22:50 1284今天开始,准备使用mac来进行android开发,将开发中遇到 ... -
SpannableStringBuilder的简单用法
2012-02-29 14:29 2423一段代码,贴了自己以后看: TextView mText ...
相关推荐
**Android MTP 文件浏览Demo详解** 在Android系统中,Media Transfer Protocol(MTP)是一种用于在设备间传输媒体文件的标准协议。MTP旨在提供比以前的 Picture Transfer Protocol (PTP) 更高级的功能,如支持更...
在Android应用开发中,显示文件列表通常是文件管理器、下载应用或任何需要用户浏览存储在设备或网络上的文件的应用的基本需求。这个"Demo"可能是用Java或Kotlin语言编写的,这两种语言都是Android官方支持的编程语言...
在网页开发中,列表分页是一项常见的功能,它允许用户以较小的数据块浏览大量数据,提高页面加载速度,提升用户体验。本示例是基于JavaScript实现的列表分页DEMO,适用于那些希望在自己的项目中集成这一功能的开发者...
本文将围绕"各种文件管理demo"这一主题,深入探讨四个不同的文件管理源码及其相关信息。 首先,我们来看`FoxWebFileManager.rar`。这可能是一款基于Web的文件管理系统,它允许用户通过浏览器进行文件的上传、下载、...
在Android开发中,创建一个自定义的文件浏览器是常见的需求,尤其在开发涉及用户选择文件或目录的应用时。...通过深入理解并实践这些内容,开发者可以创建出满足特定需求的、用户友好的文件浏览功能。
网页动态图片浏览Demo源码是前端开发者经常遇到的一种应用场景,主要目的是为了在网页上实现流畅、交互性强的图片展示功能。这些Demo源码通常由JavaScript编写,结合HTML和CSS技术,形成一套完整的解决方案。本资源...
在后台线程中,开发者需要遍历所选文件列表,逐个读取文件内容,然后通过HTTP或FTP协议发送到服务器。这部分涉及了文件I/O操作,如FileInputStream用于读取文件,以及网络编程知识,如使用Apache HttpClient库进行...
例如,对于文件管理应用,它可以帮助用户直观地浏览文件夹和文件的层次关系;在编程语言的解释器或编译器中,它可以用于表示语法结构,方便解析和执行代码。此外,TreeDemo还可以作为教学工具,帮助初学者理解树的...
本示例“图像文件格式转换 可浏览tiff图像 demo.rar”着重于介绍如何使用C#语言进行图像文件的转换,并且特别关注了处理TIFF(Tagged Image File Format)图像格式。TIFF是一种广泛使用的高级图像格式,它支持多种...
这种结构使得 `.chm` 文件易于分发和浏览。 2. **编译过程**:创建 `.chm` 文件通常涉及使用Microsoft的HTML Help Workshop工具。开发者首先编写HTML文档和关联资源,然后使用Workshop将这些文件编译为 `.chm` 文件...
标题 "几个文件上传的Demo" 暗示了这是一个关于文件上传功能的示例代码集。在IT领域,文件上传是Web应用中的常见功能,允许用户上传图片、文档等文件到服务器。本示例可能涉及的技术包括前端JavaScript库、后端处理...
Chrome插件通常由以下几个部分组成:manifest.json(扩展配置文件)、背景脚本(background script)、内容脚本(content script)、选项页面(options page)、弹出框(popup)以及可能的图像资源等。"full-chrome...
综上所述,这个“android 浏览普通彩信列表demo”涉及到的关键知识点包括:布局设计(xml文件解析)、`ListView`与适配器的使用、数据库查询、多媒体文件处理、广播接收器的注册和使用,以及性能优化。通过理解和...
本项目"html5 pdf浏览demo"就是基于这样的特性构建的,旨在提供一个在浏览器中浏览PDF的解决方案。 项目描述中提到,此项目包含了完整的代码,可以直接运行。用户只需打开`web`文件夹中的`viewer.html`,就可以体验...
3. **滚动同步**:实现页面滚动时,保持当前视图在页面中的位置不变,确保用户浏览体验。 4. **缩放操作**:提供缩放功能,允许用户放大或缩小PDF内容,PDF.js提供了`scale`参数来调整缩放比例。 5. **书签和链接**...
总的来说,"网站demo-列表页.rar"中的"news"文件为我们提供了一个学习和参考网站列表页设计的实例。从这个示例中,我们可以学习到如何构建高效、美观且用户体验优良的列表页,这对于任何涉及网页开发和设计的人都是...
用户不仅可以浏览文件列表,还能进行搜索,快速找到并打开感兴趣的文件。以下是对这个demo中涉及的关键知识点的详细解释: 1. **文件系统访问**:Android设备通常有两个主要的外部存储区域:内部存储和外部存储(即...
在IT领域,构建一个仿照淘宝商品详情页的浏览demo是一项常见的前端开发任务,它涉及到网页设计、用户体验优化以及多媒体处理等多个方面的技术。这个demo的主要目的是提供与淘宝商品详情页相似的浏览体验,包括视频和...
【文件管理器】是计算机系统中的一个重要组成部分,它允许用户浏览、组织、创建、移动、复制、删除和重命名文件及目录。在Android系统中,文件管理器同样扮演着不可或缺的角色,用户可以通过它来访问设备上的所有...