實驗五:多媒體播放器選單介面.

Slides:



Advertisements
Similar presentations
开发入门 一个 android 初学者的心得与体会. 前言 两周前张老师通知我说,让我根据教练助手的学习与开发的过程讲下 android 开发的心得与体会,我觉得自己在这么多 Android 前辈大佬面前讲 android 简 直是班门弄斧。由于是刚入门的初学者,水平有限,很多方面还很不足,对 错误或不周到之处欢迎批评指正。顺便还得提下,我这个标题有抄袭积聚童.
Advertisements

JAVA 概述 主讲:张雷. J2ME API 地址: 广东科贸信息工程 张雷学习要求 了解各种程序设计语言及其特点 了解各种程序设计语言及其特点 了解 JAVA 的发展史和其特点 了解 JAVA 的发展史和其特点.
從 Android SDK 3.0 開始增加了 2 個新的類別: Fragment 與 Action Bar 。 Fragment 提供不同佈局畫面的另一種用法,但 設計更有彈性,更能針對螢幕大小變化,採用 最合適的設計,例如對較大螢幕的平板裝置, 它可以在一個活動的畫面同時顯示 2 個 Fragment.
Android ADT + Android SDK Eclipse Eclipse 編輯器 JAVA JAVA 開發工具.
Android开发入门 -----第一个Android程序 主讲:李晓蕾
第2章  Android应用的界面编程.
第13章 繪圖與多媒體 13-1 顯示圖檔-行動相簿 13-2 音樂播放-音樂播放器 13-3 影片播放-視訊播放器
第一章 Android简介与环境搭建 QQ号: QQ群: (Android编程入门) 网络资源:
面向对象程序设计(Java) 徐志红
Part 2 開發Android應用程式的流程
第一章 面向对象程序设计.
位置與地圖應用 此投影片為講解Android如何取得定位經緯度和使用Google Map地圖.
第1章 导论 倚动实验室.
Android + Web Service 建國科技大學 資管系 饒瑞佶 2017/3 V1.
ArrayAdapter & Spinner
Android App 系統開發教學 Luna 陳雯琳 2014/12/18
使用Android Studio 開發Android App 靜宜大學資管系 楊子青
建立Android新專案 建國科技大學 資管系 饒瑞佶 2010/10.
厦门大学数据库实验室 报告人:谢荣东 导师:林子雨 2014年8月30日
實驗四:單位轉換程式.
第2章 建立Android應用程式 2-1 Java語言、XML文件與Android 2-2 建立第一個Android應用程式
第7章 Android文件与本地数据库(SQLite)
Chapter 13 Android 實戰演練.
Android + JUnit 單元測試 建國科技大學資管系 饒瑞佶 2012/8/19V4.
實驗十三:顯示目前經緯度位置.
其他視窗.
Ch06 再談選單元件 物件導向系統實務.
使用Android控制Arduino 史先强
Android資料庫處理 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
第11章 Android GPS位置服务与地图编程
第一个Android程序 本讲大纲: 1、创建Android应用程序 2、Android项目结构说明 3、运行Android应用程序
第8章 Android内容提供者(ContentProvider)应用
Chapter 6 Advanced UI Design.
Ch13 集合與泛型 物件導向程式設計(2).
Android介面設計 Android智慧型手機程式設計 建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2
Android Intent 建國科技大學 資管系 饒瑞佶 2011/1.
Chapter 6 進階UI設計.
第9章 使用意圖啟動活動與內建應用程式 9-1 意圖的基礎 9-2 使用意圖啟動活動
ANDROID PROGRAMMING2.
CH7 佈局、按鈕與文字編輯元件.
Android + Service 建國科技大學 資管系 饒瑞佶.
Android 基礎.
實驗十四:顯示與控制地圖.
第2讲 移动应用开发基础知识(二) 宋婕
RecyclerView and CardView
建立Android新專案 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
第6章 建立Android使用介面 6-1 介面元件的基礎 6-2 Android的事件處理 6-3 按鈕元件 6-4 文字元件
Android 视频教程简介.
建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2 2013/2 V3 2014/9 V4
C/C++/Java 哪些值不是头等程序对象
第10章 GPS位置服务与地图编程.
實驗十一:待辦事項程式 (儲存在手機上).
主编:钟元生 赵圣鲁.
简单工厂模式.
Chapter 5 Basic UI Design.
Android視窗介面 建國科技大學 資管系 饒瑞佶 2010/10.
主编:钟元生 赵圣鲁.
實驗九:延續實驗八, 製作一個完整音樂播放器
課程網站
Location Based Services - LBS
進階UI元件:Spinner與接合器 靜宜大學資管系 楊子青
補間動畫 (Tween Animation) 靜宜大學資管系 楊子青
Android視窗介面 建國科技大學 資管系 饒瑞佶 2010/10.
實驗十六:匯出APK安裝檔與軟體上架.
進階UI元件:ListView元件以及複選 靜宜大學資管系 楊子青
RecyclerView and CardView
實驗十:影片播放.
Android Speech To Text(STT)
控制UI界面 本讲大纲: 1、使用XML布局文件控制UI界面 2、在代码中控制UI界面 3、使用XML和Java代码混合控制UI界面
進階UI元件:Spinner與接合器 靜宜大學資管系 楊子青
Presentation transcript:

實驗五:多媒體播放器選單介面

實驗五 主題 目的 環境需求 練習製作一個多媒體播放器選單介面 根據不同的媒體類型顯示不同的圖示 學習如何設計自定義選單內容 透過SimpleAdapter將資料設定到ListView 學習如何使用OnItemClickListener事件監聽器 環境需求 Java SE Development Kit (JDK) Android SDK Eclipse ADT 本實驗為練習製作一個多媒體撥放器選單介面並可以根據不同的媒體類型顯示不同的圖示

實驗五範例 選單介面中,利用一個ListView元件,並將每一列顯示的項目內容利用自訂的佈局來做排列,最後利用Simple Adapter將對應的圖示資源路徑以及媒體名稱顯示出來。 當按下某首歌後,會在Log視窗顯示所選取的歌曲名稱

新增專案 1 2 3 1.新建一個Android專案 2.輸入專案名稱 MusicPlayer,套件名稱tw.edu.ncu.ce.bnlab.musicplayer 3.選擇SDK版本為 Android4.4 (API 19),最低需求版本為 (API 19) Android 4.4 4.設定完成後點下一步 4

新增專案 5.按下一步,設定完Icon樣式後再按下一步 5

新增專案 6.設定新建活動的樣式,直接使用預設,並點選下一步。 6

新增專案 7.使用預設活動以及對應佈局檔案的名稱,直接按下完成,專案即建立專案。 7

主畫面 打開res/layout/activity_main.xml 將TextView元件刪除,佈局方式改為水平線性佈局,將ListView拖入線性佈局中 XML內容 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/listView1" android:layout_height="wrap_content" /> </LinearLayout>

建立音樂列表佈局檔案 8 8.在佈局文件資料夾上 res/layout 點選右鍵→新建→Android XML Layout File(或Android XML File) 來新增一個音樂列表中一列的畫面佈局檔案。 Note:若在按右鍵選單中找不到Android XML Layout File或Android XML File,請選其他Android資料夾中即可找到 音樂列表佈局

建立音樂列表佈局檔案 9 9.在File欄位中輸入佈局檔案的名稱 list,並在下方點選LinearLayout作為初始的佈局方式。

res/layout/list.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/textView1" android:layout_height="wrap_content" android:text="TextView" /> </LinearLayout> 音樂列表畫面只需一個圖顯示音樂種類和一個文字描述音樂檔案名稱,因此打開剛新建的res/layout/list.xml檔案,將一個ImageView(在拖入ImageView時,會跳出選取圖片的視窗,請直接按視窗上的Clear按鈕即可)和TextView拖入水平的線性佈局中,XML檔案程式內容如投影片所示,請注意紅色屬性是否設定正確 音樂列表佈局

匯入音樂列表圖示資源 在專案的res資料夾內建立一個drawable資料夾

匯入音樂列表圖示資源 11.在 res/drawable資料夾上按右鍵 12.點選”匯入” 開啟匯入視窗 13.選擇General→檔案系統 14.選擇下一步

匯入音樂列表圖示資源 15.選瀏覽開啟瀏覽視窗 16.在瀏覽視窗中找尋要匯入專案中的圖片路徑(圖片可在本範例專案壓縮檔內的res/drawable中找到mp3.png和wma.png)

匯入音樂列表圖示資源 17.勾選要匯入的圖檔 18.完成後點選完成即會匯入到專案中

將音樂放入sdCard中 此實驗會從sdCard跟目錄資料夾中尋找副檔名為mp3或wma的音樂檔 將音樂檔放入手機或模擬器的sdCard中 先打開模擬器或先將手機與電腦連接(需安裝驅動程式) 模擬器開啟/裝置連接後,在eclipse的Devices視窗(在eclipse視窗下方,若未看見Devices請點選eclipse的視窗選單顯示視圖其他Android資料夾中點選Devices)中會顯示連接到電腦的裝置,選取要放入資料的裝置 打開eclipse中的FileExplorer(在eclipse視窗下方,若未看見FileExplorer請點選eclipse的視窗選單顯示視圖其他Android資料夾中點選FileExplorer)視窗 Note:若要放資料於模擬器的SDCard中,必須於建立模擬器時,建立模擬SDCard,請參見實驗1投影片

將音樂放入sdCard中 --在Devices視窗中選取要放入資料的裝置 --開啟FileExplorer視窗,選取sdcard資料夾,在FileExplorer視窗右上方,選取指向手機圖示按鈕,在跳出視窗中,選取要放入sdcard的資料,本範例放入投影片圈選的音樂檔

src/MainActivity.java 8 1 2 3 取出音樂檔案名稱的副檔名 4 比對音樂檔案名稱的副檔名 5 6 7 public class MainActivity extends Activity implements OnItemClickListener { ArrayList<String> musicList; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayList<HashMap<String,Object>> list=new ArrayList<HashMap<String,Object>>(); musicList = findMusic(); for (int i = 0; i < musicList.size(); i++) { HashMap<String, Object> item = new HashMap<String, Object>(); String musicName=musicList.get(i); item.put("song", musicName); String extensionName=musicName.substring(musicName.lastIndexOf('.')+1); if (extensionName.equalsIgnoreCase("mp3")) item.put("icon", R.drawable.mp3); else if (extensionName.equalsIgnoreCase("wma")) item.put("icon", R.drawable.wma); list.add(item); } String from[] = { "icon", "song" }; int to[] = { R.id.imageView1, R.id.textView1 }; SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.list, from, to); ListView listView = (ListView) findViewById(R.id.listView1); listView.setAdapter(adapter); listView.setOnItemClickListener(this); 8 src/MainActivity.java 1 2 3 取出音樂檔案名稱的副檔名 4 比對音樂檔案名稱的副檔名 程式請使用alt+/快速鍵,幫助輸入程式 宣告musicList 變數,用來儲存音樂檔案名稱的清單 產生一個ArrayList<HashMap<String,Object>>物件list,用來儲存音樂列表資料 呼叫自訂的findMusic()方法,此方法在下頁投影片中,用來尋找sdcard中副檔名為mp3或wma的檔案,將檔案名稱利用ArrayList儲存 將sdcard中每一首音樂檔案的名稱和對應的音樂類型圖示放入HashMap<String, Object>物件 item中,音樂名稱的key為 song;對應音樂類型圖示的key為 icon,放入HashMap後,再將HashMap放入list中。 產生SimpleAdapter物件adapter ,設定列表畫面與資料List中的HashMap的key值對應到列表畫面的元件代號 將主畫面的ListView 找出,並設定其adapter 物件 將ListView 註冊監聽OnItemClick事件 讓程式實作OnItemClickListener介面(請利用滑鼠點擊產生,會自動在程式中加入onItemClick方法,在下頁投影片中) 5 6 7

找出sdcard路徑,並回傳File物件 ArrayList<String> findMusic(){ ArrayList<String> playList=new ArrayList<String>(); File dir=Environment.getExternalStorageDirectory(); File [] fileList=dir.listFiles(); for(File file : fileList ){ if(file.isFile()){ String fileName=file.getName(); String extensionName=fileName.substring(fileName.lastIndexOf('.')+1); if(extensionName.equalsIgnoreCase("mp3") ||extensionName.equalsIgnoreCase("wma")) playList.add(fileName); } return playList; public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { Log.i("list", "您選了:"+musicList.get(arg2)+"這首歌"); 儲存找到的音樂名稱 取回sdCard中的所有檔案和目錄的File物件陣列 將每個檔案或目錄取出 取出檔案名稱中的副檔名 判斷是否為檔案 取出檔案名稱 10 比對副檔名(忽略大小寫的比對)是否為mp3或wma,若是則加入playList中 9. 當點擊列表中某筆資料時,顯示Log訊息 10. 找出sdcard跟目錄中副檔名為mp3或wma的音樂名稱,並儲存在playList中,最後將playList回傳 9

增加使用權限 在Android 4.4要讀取sdCard資料需加入讀取權限 打開專案中的AndroidManifest.xml檔案,切換到Permissions頁籤

增加使用權限