`
bogongjie
  • 浏览: 235925 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Android 可選文件格式瀏覽器

阅读更多

 

 

package training.filesystem;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import android.R.integer;
import android.R.layout;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Display;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout.LayoutParams;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class FilesystemActivity extends ListActivity implements OnClickListener, OnItemSelectedListener {
	private TextView hint;
	private ListView list;
	private TextView filename;
	private Spinner filetype;
	private Button oKButton,cancelButton;
	private String root = "/";
	private String root_sdcard = "/mnt/sdcard";
	private ArrayList<String> path;
	private ArrayList<Map<String, Object>> item;
	private ArrayList<Version> aboutVersionList = new ArrayList<Version>();
	private String pathString;
	private String PATH_FILE_NAME;
	private AlertDialog warnAlertDialog;
	private AlertDialog errorAlertDialog;
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.main);
		hint = (TextView) findViewById(R.id.path);
		filename =(TextView)findViewById(R.id.name);
		oKButton = (Button)findViewById(R.id.ok);
		cancelButton = (Button)findViewById(R.id.cancel);
		filetype = (Spinner)findViewById(R.id.spinner);
		filetype.setOnItemSelectedListener(this);
		list = this.getListView();
		oKButton.setOnClickListener(this);
		cancelButton.setOnClickListener(this);
		getfiledir(root_sdcard,0);
		
		
		
		WindowManager manager = getWindowManager();
		Display display = manager.getDefaultDisplay();
		android.view.WindowManager.LayoutParams params = getWindow().getAttributes();
		params.height = (int)(display.getHeight() * 0.5);
		params.width = (int)(display.getWidth() * 0.5);
		params.dimAmount = 0.0f;
		getWindow().setAttributes(params);
		getWindow().setGravity(Gravity.CENTER);

	}

	protected void getfiledir(String filepath,int type) {
		final int abcd = type;
		item = new ArrayList<Map<String, Object>>();
		path = new ArrayList<String>();
		hint.setText(filepath);
		pathString = filepath;
		File f = new File(filepath);
		File[] files = f.listFiles();
		if (!filepath.equals(root)) {
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("icon", R.drawable.up_folder);
			map.put("name", "back to /");
			item.add(map);
			path.add("/mnt/sdcard/");
			Map<String, Object> map2 = new HashMap<String, Object>();
			map2.put("icon", R.drawable.up_folder);
			map2.put("name", "back to ../");
			item.add(map2);
			path.add(f.getParent());
		}
		if (files != null) {
			for (int i = 0; i < files.length; i++) {
				if(type == 0){
					Map<String, Object> map = new HashMap<String, Object>();
					
					if (files[i].isDirectory()) {
						map.put("icon", R.drawable.folder);
					}else {
						map.put("icon", R.drawable.file);
					}
					map.put("name", files[i].getName());
					item.add(map);
					path.add(files[i].getPath());
				}else if (type == 1) {
					if (files[i].isDirectory()) {
						Map<String , Object> map = new HashMap<String, Object>();
						map.put("icon", R.drawable.folder);
						map.put("name", files[i].getName());
						item.add(map);
						path.add(files[i].getPath());
					}
				}else if (type == 2) {
					if (files[i].isFile()) {
						Map<String, Object> map = new HashMap<String, Object>();
						map.put("icon", R.drawable.file);
						map.put("name", files[i].getName());
						item.add(map);
						path.add(files[i].getPath());
					}
				}
			}
		}
		SimpleAdapter simpleAdapter = new SimpleAdapter(FilesystemActivity.this, item, R.layout.line, new String[]{"icon","name"}, new int[]{R.id.icon,R.id.name});
		list.setAdapter(simpleAdapter);
		list.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				// TODO Auto-generated method stub
				File file = new File(path.get(arg2));
				if (file.isDirectory()) {
					getfiledir(path.get(arg2),abcd);
				} else {
					Toast.makeText(FilesystemActivity.this, "这是一个文件!",
							Toast.LENGTH_SHORT).show();
					filename.setText(file.getName());
					PATH_FILE_NAME = file.getName();
				}
			}

		});
	}
	public boolean GetVersionInfo(){
		String tempString = null;
		boolean isHaveVersion = false;
		try {
			File file = new File(pathString + "/" + PATH_FILE_NAME);
			FileReader fileReader = new FileReader(file);
			BufferedReader bufferedReader = new BufferedReader(fileReader);
			while ((tempString = bufferedReader.readLine()) != null) {
				if (tempString.startsWith("[")) {
					if (tempString.substring(tempString.indexOf("[")+1,tempString.indexOf("]")).equals("Version")) {
						tempString = bufferedReader.readLine();
						Version version = new Version();
						String[] splitString = tempString.split(",");
						if (splitString.length != 3) {
							break;
						}
						version.VERSION_ID = splitString[0];
						version.VERSION_DEVICE = splitString[1];
						version.VERSION_PLATFORM = splitString[2];
						aboutVersionList.add(version);
						isHaveVersion = true;
						break;
					}
				}
				
			}
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return false;
		}
		if (isHaveVersion) {
			return true;
		}else {
			return false;
		}
	}
	public class Version{
		String VERSION_ID;
		String VERSION_PLATFORM;
		String VERSION_DEVICE;
	}
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		if (v == oKButton) {
			if(GetVersionInfo()){
				Version version = aboutVersionList.get(0);
				warnAlertDialog = new AlertDialog.Builder(this).setIcon(R.drawable.warning).setTitle(getText(R.string.dialog_title))
						.setMessage(getText(R.string.dialog_content_id) + version.VERSION_ID +"\n" +
								getText(R.string.dialog_content_platform) + version.VERSION_PLATFORM + "\n" +
								getText(R.string.dialog_content_device) + version.VERSION_DEVICE + "\n" +
								getText(R.string.dialog_content)).setPositiveButton(getText(R.string.dialog_ok), new DialogInterface.OnClickListener() {
									
									@Override
									public void onClick(DialogInterface dialog, int which) {
										// TODO Auto-generated method stub
										
									}
								}).setNegativeButton(getText(R.string.dialog_cancel), new DialogInterface.OnClickListener() {
									
									@Override
									public void onClick(DialogInterface dialog, int which) {
										// TODO Auto-generated method stub
										
									}
								}).show();
			}else {
				errorAlertDialog = new AlertDialog.Builder(this).setIcon(R.drawable.warning).setTitle(getText(R.string.dialog_title))
						.setMessage(getText(R.string.dialog_error))
						.setPositiveButton(getText(R.string.dialog_ok), new DialogInterface.OnClickListener() {
							
							@Override
							public void onClick(DialogInterface dialog, int which) {
								// TODO Auto-generated method stub
								
							}
						}).show();
			}
		}
	}

	@Override
	public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
		// TODO Auto-generated method stub
		String aString = filetype.getSelectedItem().toString();
		if (aString.equals("所有档案")) {
			getfiledir(pathString,0);
		}else if (aString.equals("文件夹")) {
			getfiledir(pathString, 1);
		}else if (aString.equals("文件")) {
			getfiledir(pathString, 2);
		}
	}

	@Override
	public void onNothingSelected(AdapterView<?> arg0) {
		// TODO Auto-generated method stub
		
	}
}
分享到:
评论

相关推荐

    android图片浏览器的开发.doc

    5. 可选扩展:实现在线图片加载,集成图片缓存机制。 三、相关知识 3.1 Android系统介绍 Android是一个开源的移动设备操作系统,由Google主导开发,主要应用于智能手机和平板电脑。它基于Linux内核,提供了一整套...

    英语学习浏览器,快速免费,推荐epic,其他的可选

    而“推荐epic,其他的可选”则表明epic是首选,但还有其他替代选项可供考虑,这可能包括其他具有类似功能的浏览器或插件。 标签“软件/插件”暗示了除了独立的浏览器应用外,也可能存在与浏览器配合使用的插件,...

    Alook浏览器安卓版 v8.0.0 支持视频播放16倍速的浏览器

    音/视频悬浮,8倍速(支持0.5-16.0),分享链接,后台播放,AirPlay,小窗播放,单曲循环 ,画中画…内置Adblock Plus,可选多语言规则和第三方规则,支持手动编辑标记广告,自动屏蔽侵入式广告。文件管理支持手动...

    Android系统下,如何查看SD卡和U盘上的文件.doc

    - 在ES文件浏览器的主界面,用户通常会看到SD卡作为其中一个可选的存储位置,点击该选项即可浏览SD卡上的文件和文件夹。 - 如果SD卡未显示,可以尝试重启设备或者检查SD卡是否已正确插入。 3. **查看U盘上的文件*...

    html5+js实现手机录音功能,支持微信等80%的浏览器内核

    录音默认输出mp3格式,另外可选wav格式(此格式录音文件超大);有限支持ogg(beta)、webm(beta)格式;支持任意格式扩展(前提有相应编码器)。 mp3默认16kbps的比特率,2kb每秒的录音大小,音质还可以(如果使用8...

    新版Android开发教程.rar

    ----------------------------...• 优化的图形库 包括定制的 2D 图形库, 3D 图形库基于 OpenGL ES 1.0 (硬件加速可选) • SQLite SQLite SQLite SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的音频、视频和...

    FileBrower.zip

    // 调用Android插件打开文件浏览器 currentActivity.Call("OpenFileBrowser", new AndroidJavaRunnable(OnActivityResult)); } } void OnActivityResult(int requestCode, int resultCode, AndroidJavaObject ...

    android 截图 可手动选截取部分

    在Android操作系统中,截图是日常使用手机时非常常见的功能,用于保存屏幕上的当前状态或分享信息。然而,标准的截图操作通常只能捕获整个屏幕,而不能自由选择想要截取的部分。为了满足用户对自定义截图的需求,...

    傲游浏览器手机版 v4.3.4 安卓版.zip

    傲游云浏览器Android版是针对Android系统精心打造的浏览器, 同时也是全球首款拥有云标签、云推送、云下载、云收藏功能的多标签网页浏览器。炫酷的界面,创新的手势操作、阅读模式、应用中心等强大功能,给用户带来...

    图片浏览器(可缩放)

    总的来说,"图片浏览器(可缩放)"项目涉及到了Android应用开发中的多个重要知识点,包括UI组件(`Gallery`和`ImageSwitcher`)、手势识别(`ScaleGestureDetector`)、图片加载和处理、以及内存管理策略。...

    Android应用程序开发教程PDF电子书完整版、Android开发学习教程

    • 优化的图形库 包括定制的2D 图形库,3D 图形库基于 OpenGL ES 1.0 (硬件加速可选) • SQLite SQLite SQLite SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的音频、视频和静态图像格式 (如 MPEG4, H.264...

    Android开发入门教育课件.ppt

    * 优化的图形库:包括定制的2D图形库,3D图形库基于OpenGL ES 1.0(硬件加速可选) * SQLite:用作结构化的数据存储 * 多媒体支持:包括常见的音频、视频和静态图像格式 * GSM电话技术(依赖于硬件) * 蓝牙...

    Android FAQ.docx

    4. 优化的图形机制:2D图形库和3D图形实现(可选硬件加速)。 5. SQLite数据库:轻量级但功能强大的数据库系统。 6. 多媒体支持:广泛支持音频、视频和静态图像格式。 7. 支持GSM、蓝牙、EDGE、3G和Wi-Fi等通信技术...

    Android编程入门很简单.(清华出版.王勇).part1

    4.1.3使用文件浏览器 4.1.4使用模拟器控制 4.1.5 使用日志 4.1.6使用Screen Capture捕捉设备屏幕 4.2 使用Android调试桥 4.2.1使用ADB 4.2.2显示连接到计算机的设备 4.2.3针对特定设备操作 4.2.4启动和停止ADB 4.2.5...

    Android Developer Guide

    - 优化的图形:包括一个自定义的2D图形库和基于OpenGLES 1.0规范的3D图形(可选硬件加速)。 - SQLite数据库:用于结构化数据存储。 - 媒体支持:支持常见的音频、视频和图像格式,包括MPEG4、H.264、MP3、AAC、AMR...

    Google Android SDK开发范例大全(完整版)

    adb 实用程序支持一些可选命令行参数,以提供强大的特性,例如复制文件到设备或从设备复制文件。可以使用 shell 命令行参数连接到手机本身,并发送基本的 shell 命令。图 4 显示在通过 USB 线连接到 Windows 笔记本...

    Android基础知识详解【PDF文档】

    数据存取是开发中不可忽视的部分,Android提供了多种数据存储方式,包括使用SharedPreferences进行轻量级的数据存储,文件存储用于读写文件,SQLite数据库提供了一个轻量级的关系型数据库解决方案,而...

    Android基础知识.pdf

    - **图形机制**:自定义2D图形库与基于OpenGL ES 1.0规范的3D图形实现(可选硬件加速)。 - **SQLite**:轻量级数据库,支持结构化数据存储。 - **媒体支持**:支持常见音频、视频及图片格式。 - **硬件支持**:如...

    Recorder:html5 js 录音 mp3 wav ogg webm amr 格式,支持pc和Android、ios部分浏览器、和Hybrid App(提供Android IOS App源码),微信也是支持的,提供H5版语音通话聊天示例 和DTMF编解码

    【】 | 【】如果本文档图片没有显示,请手动切换到Gitee镜像库阅读文档。 ...,支持大部分已实现getUserMedia的移动端、PC端浏览器;...录音默认输出mp3格式,另外可选wav格式;有限支持ogg(beta)、webm(b

    Android.pdf

    - **aapt**:Android Asset Packaging Tool,用于处理资源文件。 - **android**:Android命令行工具。 - **layoutopt**:优化布局设计。 - **mksdcard**:创建虚拟SD卡映像文件。 - **ddms**:Device Debug Monitor ...

Global site tag (gtag.js) - Google Analytics