Android 自定义类型文件与程序关联

例如:自定义格式文件 *.file

在文件管理器中点击,自动打开对应*.file的应用程序

要在manifest --> activity中增加

<intent-filter >
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="file"/>
    <data android:mimeType="*/*" />
    <data android:host="*" />
    <data android:pathPattern=".*\\.test" />
</intent-filter>

这样就可以默认打开了。

 

如果一个应用可以打开多种格式的文件

例如这里要打开*.test, 又要打开*.txt的文件,则可以这样

 

<intent-filter>  

<action android:name="android.intent.action.VIEW" />  

<category android:name="android.intent.category.DEFAULT" />  

<category android:name="android.intent.category.BROWSABLE" />  

<data android:scheme="file" />  

<data android:mimeType="*/*" />  

<data android:host="*" />  

<data android:pathPattern=".*\\.txt" />  

</intent-filter>  

<intent-filter>  

<action android:name="android.intent.action.VIEW" />  

<category android:name="android.intent.category.DEFAULT" />  

<category android:name="android.intent.category.BROWSABLE" />  

<data android:scheme="content" />  

<data android:host="*" />  

<data android:pathPattern=".*\\.txt" />  

</intent-filter>

 

在这当中,data块缺一不可,你必须同时申明android:scheme, android:host, android:pathPattern, 方可令pathPattern正确生效。对于content scheme,将会匹配诸如:content://com.metago.astro.filesystem/sdcard/txt /pg17155.txt 这样的请求,你的Activity将可以有效地打开这样的txt文件。对于file scheme,大致会匹配诸如:file:///sdcard/txt/pg17155.txt这样的请求,并且,如果有必要,你可以加入 android:mimeType限定。

 

 

 一旦intent-filter关联完成,在Activity的onCreate,onNewIntent中将可通过:
Intent intent=getIntent();
Uri uri=(Uri)intent.getData();
String path=uri.getPath();

序列获得关联打开文件的绝对路径。

 


PS:  下面给出一些mimeType的知识,内容来自互联网

一、MIME TYPE描述

多用途互联网邮件扩展MIMEMultipurpose Internet Mail Extensions)是一个互联网标准,它扩展了电子邮件标准,使其能够支持非ASCII字符、二进制格式附件等多种格式的邮件消息。

内容类型(Content-Type),这个头部领域用于指定消息的类型。一般以下面的形式出现。[type]/[subtype]

type有下面的形式。

  • Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;
  • Multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据;
  • Application:用于传输应用程序数据或者二进制数据;
  • Message:用于包装一个E-mail消息;
  • Image:用于传输静态图片数据;
  • Audio:用于传输音频或者音声数据;
  • Video:用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式。

subtype用于指定type的详细形式。content-type/subtype配对的集合和与此相关的参数,将随着时间而增长。为了确保这些值在一个有序而且公开的状态下开发,MIME使用Internet Assigned Numbers Authority (IANA)作为中心的注册机制来管理这些值。常用的subtype值如下所示:

  • text/plain(纯文本
  • text/html(HTML文档)
  • application/xhtml+xml(XHTML文档)
  • image/gif(GIF图像)
  • image/jpeg(JPEG图像)【PHP中为:image/pjpeg】
  • image/png(PNG图像)【PHP中为:image/x-png】
  • video/mpeg(MPEG动画)
  • application/octet-stream(任意的二进制数据)
  • application/pdf(PDF文档)
  • application/msword(Microsoft Word文件)
  • message/rfc822(RFC 822形式)
  • multipart/alternative(HTML邮件的HTML形式和纯文本形式,相同内容使用不同形式表示)
  • application/x-www-form-urlencoded(使用HTTP的POST方法提交的表单)
  • multipart/form-data(同上,但主要用于表单提交时伴随文件上传的场合)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android定义按钮可以通过自定义样式和布局文件来实现。下面是一个简单的步骤: 1. 创建一个新的 XML 布局文件,例如 custom_button.xml。 2. 在布局文件定义按钮的外观和样式。你可以设置按钮的背景、文字颜色、边框等。 3. 在你的 Activity 或 Fragment 中使用该自定义按钮。在布局文件中,使用`<com.example.CustomButton>`作为按钮的标签,其中`com.example`是你自定义按钮类的包名。 4. 在你的自定义按钮类中,继承 `Button` 类,并实现构造方法和一些自定义方法。你可以添加一些特定的行为或属性,如点击事件或动画效果。 5. 在自定义按钮类中,重写 `onDraw` 方法来绘制自定义的外观。你可以使用 `Canvas` 对象来绘制形状、颜色和文本。 6. 将自定义按钮类与布局文件中的按钮关联起来。在布局文件中使用 `app:buttonStyle="@style/CustomButtonStyle"` 来指定按钮的样式。 7. 在你的 styles.xml 文件定义定义按钮的样式,例如: ```xml <style name="CustomButtonStyle" parent="Widget.AppCompat.Button"> <item name="android:background">@drawable/custom_button_background</item> <item name="android:textColor">@color/custom_button_text_color</item> <!-- 其他样式属性 --> </style> ``` 8. 创建一个自定义背景资源文件 custom_button_background.xml,用于定义按钮的背景形状和颜色。 9. 运行你的应用程序,查看自定义按钮的效果。 这些是实现 Android定义按钮的基本步骤。你可以根据自己的需求和创意来进一步扩展和定制按钮的外观和行为。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值