afileChooser是androID平台上的一个第三方文件选择器,其在github上的项目主页是:https://github.com/iPaulPro/aFileChooser
afileChooser实现了在AndroID平台上高度可定制化的文件选择功能,afileChooser在自己的项目代码中使用也比较简单。
写一个简单例子加以说明。
(1) 首先要配置AndroIDmanifest.xml文件:
<activity androID:name="com.ipaulpro.afilechooser.fileChooserActivity" androID:enabled="@bool/use_activity" androID:exported="true" androID:icon="@drawable/ic_launcher" androID:label="@string/choose_file" > <intent-filter> <action androID:name="androID.intent.action.GET_CONTENT" /> <category androID:name="androID.intent.category.DEFAulT" /> <category androID:name="androID.intent.category.OPENABLE" /> <data androID:mimeType="*/*" /> </intent-filter> </activity>
最好把读写文件的权限一并加上:
<uses-permission androID:name="androID.permission.MOUNT_UNMOUNT_fileSYstemS" /><uses-permission androID:name="androID.permission.WRITE_EXTERNAL_STORAGE" />
(2) 在Java代码中直接调用:
首先要触发文件选择,startActivityForResult调用afileChooser已经提供好的选择器:
Intent getContentIntent = fileUtils.createGetContentIntent(); Intent intent = Intent.createChooser(getContentIntent,"用afileChooser选择文件"); startActivityForResult(intent,REQUEST_CHOOSER);
然后在onActivityResult里面等待结果返回:
@OverrIDe protected voID onActivityResult(int requestCode,int resultCode,Intent data) { switch (requestCode) { case REQUEST_CHOOSER: if (resultCode == RESulT_OK) { final Uri uri = data.getData(); //此处返回的Uri包含的路径信息形如:content://com.androID.provIDers.media.documents/document/image%3A16460 Log.d("Uri",uri.toString()); String path = fileUtils.getPath(this,uri); // Alternatively,use fileUtils.getfile(Context,Uri) if (path != null && fileUtils.isLocal(path)) { file file = new file(path); Toast.makeText(this,file.getabsolutePath()+"",Toast.LENGTH_SHORT).show(); } } break; } }
完整的代码:
package zhangphil.demo;import java.io.file;import com.ipaulpro.afilechooser.utils.fileUtils;import androID.app.Activity;import androID.content.Intent;import androID.net.Uri;import androID.os.Bundle;import androID.util.Log;import androID.vIEw.VIEw;import androID.Widget.Toast;public class MainActivity extends Activity { private static final int REQUEST_CHOOSER = 0x1234; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); findVIEwByID(R.ID.choosebutton).setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { Intent getContentIntent = fileUtils.createGetContentIntent(); Intent intent = Intent.createChooser(getContentIntent,REQUEST_CHOOSER); } }); } @OverrIDe protected voID onActivityResult(int requestCode,Toast.LENGTH_SHORT).show(); } } break; } }}
afileChooser另外一个比较有意义功能是:afileChooser可以将AndroID 4.4及以上平台经由get content获取的AndroID形如:
content://com.androID.provIDers.media.documents/document/image%3A16460的路径转化为人类可辨识的文件路径。此功能我在上面的示例代码中从log输出的那一行可知。
附文章:《AndroID设置头像,手机拍照或从本地相册选取图片作为头像》
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
以上是内存溢出为你收集整理的Android第三方文件选择器aFileChooser使用方法详解全部内容,希望文章能够帮你解决Android第三方文件选择器aFileChooser使用方法详解所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)