編輯:關於Android編程
在你手機中,打開文件的方式有這麼幾種:
1、通過要打開的這個文件的類型找到對應的應用程序app打開
2、通過已知文件類型打開應用程序,找到對應的這個文件打開
簡單點說,通過文件找對應app,通過app找對應的文件。
那麼在安卓中是怎樣實現這一效果的呢?
咱們來實現這一一個程序:
通過點擊按鈕,實現播放歌曲、打開浏覽器等的功能。
效果圖:

當點擊播放歌曲時,會自動調用本地播放器播放指定歌曲,(事先必須存入模擬器當中)。

將文件存入模擬器方法:
在模擬器啟動狀態下,在右上角平台切換到DDMS中,左邊Devices設備下面會有模擬器信息線程。
在右邊窗口中切換到file Explorer中,選擇/mnt/media_rw/sdcard/中,

點擊DDMS下面的第二個圖標,將文件導入到模擬器,注意名字的合理,純小寫英文保險。

會在/mnt/media_rw/sdcard/下面出現倒入的文件。
當點擊打開浏覽器,會調用本地浏覽器跳轉到指定網站(設置的百度)。

接下來,附下代碼:
Mainactivity:
package com.example.datat;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener {
private Button bt, bt1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
registerListeners();
}
private void registerListeners() {
// TODO Auto-generated method stub
bt.setOnClickListener(this);
bt1.setOnClickListener(this);
}
private void initViews() {
// TODO Auto-generated method stub
bt = (Button) findViewById(R.id.bt);
bt1 = (Button) findViewById(R.id.bt1);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.bt:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://mnt/sdcard/inLove.mp3"), "audio/mp3");
startActivity(intent);
break;
case R.id.bt1:
Intent intent1 = new Intent();
intent1.setAction(Intent.ACTION_VIEW);
intent1.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent1);
break;
default:
break;
}
}
}
界面的xml:
與之前的不同之處就是,
1、在Intent對象intent創建好之後,需要setaction,參數是Intent.ACTION_VIEW。
引用本地的View,
2、需要setdataAndtype,將網址或者資源文件轉換成URI(統一資源標識)。浏覽器的跳轉一般是協議http,可以不用寫type。
Intent-Filter中的data有一個mimeType . 它的作用是告訴Android系統本Activity可以處理的文件的類型。如設置為 “text/plain”表
示可以處理“.txt”文件。不同格式的文件,對應不同的type,例如Image的格式有gif, jpg等。
個人理解,URL是URI的虛擬路徑,方便好記憶,例如www.baidu.com並不是真實地址,其實也是有一堆數字好比
192.168.1.0(其實這個是路由器地址)。
歌曲有歌曲的類型(例如mp3),網址有網址的類型(例如http),每一個類型對應自己的type(例如audio/mp3)。
下面附上完整的mime type的參考手冊鏈接:asp">MIME 參考手冊
Android入門之LinearLayout、AbsoluteLayout的用法實例講解
本文實例介紹了Android中LinearLayout、AbsoluteLayout的用法,希望能對於初學Android的朋友起到一點幫助作用。具體內容如下:Androi
Android自定義控件---繼承ProgressBar功能擴展
一、前言前一段時間在做視頻開發,由於本人剛接觸視頻開發這塊,所以領導沒有對我提很高的要求,僅僅要求能夠播放本地視頻即可。我想怎麼簡單怎麼做。於是選擇用Android Vi
AsyncTask源碼分析
前置內容:Callable、Future、FutureTask Executor子類的execute方法接收一個Runnable作為參數,會在新線程中執行Ru
android自定義控件自動換行效果實現
第一篇博客裡面有介紹一篇關於自動換行實現諸多自定義控件跟各種效果的博文,但是礙於當初技術能力有限,寫的jar包裡的代碼亂七八糟,在最近忙完了手頭的工作,不經意間翻看了之前