freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android平臺的音樂播放器設(shè)計(jì)與實(shí)現(xiàn)電氣工程及其自動化畢業(yè)論文(編輯修改稿)

2025-07-20 08:31 本頁面
 

【文章內(nèi)容簡介】 ng=utf8?levellist xmlns:android= item android:drawable=@drawable/logo_anim_01 android:maxLevel=1 /item android:drawable=@drawable/logo_anim_02 android:maxLevel=2 /item android:drawable=@drawable/logo_anim_03 android:maxLevel=3 //levellist在代碼中用Handler控制,主要邏輯代碼如下:private int level = 0。//定義一個(gè)變量,控制顯示第幾張圖片,值與android:maxLevel的值對應(yīng)。private Handler mHandler = new Handler() {public void handleMessage( msg) { if ( == 1) { level++。// 自增 if (level == 50) { //停止顯示動畫,進(jìn)行下一步操作。 } else { ().setLevel(level)。 / 不斷的切換下一張圖片 sendEmptyMessageDelayed(1, 100)。 //圖片切換間隔時(shí)間為100ms }} (1)。那么就會立即執(zhí)行Handler中的handleMessage方法, == 1的代碼塊執(zhí)行。然后再sendEmptyMessageDelayed(1, 100)。 == 1的代碼塊,類似于一種循環(huán)的效果。 Adapter的實(shí)現(xiàn)安卓應(yīng)用絕大多數(shù)情況需要使用到ListView控件,而顯示ListView控件就通常需要編寫合適的Adapter。Adpter的作用就是告訴ListView控件每個(gè)Item布局(子布局)顯示什么,怎樣顯示。所以編寫一個(gè)Adpter,首先編寫Item布局顯示的內(nèi)容。下面是一個(gè)Adapter的核心代碼,實(shí)現(xiàn)效果如圖44所示。public class ListingMusicAdapter extends BaseAdapter { private Context mContext。 private ListMusic listingMusics。 //播放列表中的歌曲 public ListingMusicAdapter(Context mContext ,ListMusic listingMusics) { = mContext。 = listingMusics。 } public int getCount() { return ()。 // 返回個(gè)數(shù)對應(yīng)顯示子布局的個(gè)數(shù) } public Object getItem(int position) { return (position)。 } public long getItemId(int position) { return position。 }// Adpter的編寫,重點(diǎn)是需要重寫getView方法。public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder holder = null。if (null == convertView) {convertView = (mContext).inflate(, null)。holder = new ViewHolder()。 = (TextView) ()。 = (TextView) ()。 = (TextView) ()。 = (LinearLayout) ()。(holder)。} else { holder = (ViewHolder) ()。} ((position + 1) + )。 ((position).getMusic_name())。 ((position).getSingername())。 (new () { public void onClick(View v) { // 數(shù)據(jù)庫更新播放列表中的歌曲。 })。 return convertView。 } class ViewHolder { TextView music_count。 TextView music_name。 TextView music_singer。 LinearLayout subLay。 }} 圖44 播放列表的歌曲界面Adapter編寫好之后,使用Adapter代碼如下:View view= (, null)。ListView listingView = (ListView) ()。ListingMusicAdapter listingAdapter = new ListingMusicAdapter(this,listingMusics)。listingView .setAdapter(listingAdapter)。 // ListView調(diào)用setAdapter方法。listingView .setOnItemClickListener(itemPlayListener)。播放器很多界面都需要編寫Adapter,原理是一樣的,不同的是getView方法根據(jù)不同布局效果的重寫內(nèi)容。 掃描文件的實(shí)現(xiàn)項(xiàng)目設(shè)定兩種掃描歌曲文件的方式。一鍵掃描,掃描SDCard中所有歌曲文件;自定義掃描,掃描用戶指定的文件夾中MP3歌曲文件。第一種方式,使用系統(tǒng)對外提供ContentProvider的URI(統(tǒng)一資源標(biāo)識符,標(biāo)記唯一性的)。Cursor cursor = getContentResolver().query( , null, null, null, )。獲得Cursor對象,對其進(jìn)行循環(huán)遍歷可以得到所有歌曲,然后進(jìn)行存儲。String musicName = (cursor //獲取歌曲的名字 .getColumnIndexOrThrow())。String album = (cursor //獲取歌曲專輯名字 .getColumnIndexOrThrow())。String artist = (cursor //獲取歌手名字 .getColumnIndexOrThrow())。String url = (cursor //獲取歌曲所在文件目錄路徑 getColumnIndexOrThrow())。當(dāng)用戶點(diǎn)擊自定義掃描,頁面會切換到另一個(gè)Activity,界面如圖45所示。這個(gè)界面需要編寫Adapter,然后給CheckBox注冊監(jiān)聽器。圖45 自定義掃描歌曲的界面用戶選中某些文件夾,然后編寫遞歸方法對文件夾檢測所包含的MP3文件,存儲到一個(gè)集合中,再重新對該集合中文件路徑遍歷,與系統(tǒng)提供的歌
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1