亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中怎么利用Gallery實現多級聯動

發布時間:2021-08-09 14:45:17 來源:億速云 閱讀:124 作者:Leah 欄目:移動開發

今天就跟大家聊聊有關Android中怎么利用Gallery實現多級聯動,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

Gallery布局

主要的布局是有兩個相對布局+兩個Gallery組成的:

 1: <?xml version="1.0" encoding="utf-8"?>  2: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    3:     android:layout_width="fill_parent"    4:     android:layout_height="fill_parent">    5:     <!-- 專輯 -->  6:     <Gallery android:id="@+id/gallery"  7:         android:layout_width="fill_parent"  8:         android:layout_height="wrap_content"  9:         android:layout_alignParentTop="true" 10:         android:gravity="center_horizontal" 11:         android:spacing="16dp" 12:         android:unselectedAlpha="0.5"/> 13:     <!-- 歌曲 --> 14:     <Gallery android:id="@+id/gallery2" 15:         android:background="#FFF" 16:         android:layout_width="fill_parent" 17:         android:layout_height="30dp" 18:         android:layout_below="@id/gallery" 19:         android:layout_alignParentLeft="true" 20:         android:gravity="center_vertical" 21:         android:spacing="16dp" 22:         android:unselectedAlpha="0.5" /> 23: </RelativeLayout>

Gallery的適配器

在android中適配器很好的實現了MVC思想,它很好的為某些組件提供了數據和view的實現。此處我們需要通過繼承BaseAdapter,實現兩個Gallery的適配器。

 1: /**   2:  * 專輯   3:  *    4:  * @author halzhang   5:  */   6: public class AlbumAdapter extends BaseAdapter {   7:     8:     private Context context;   9:    10:     private Cursor cursor;  11:    12:     private Bitmap[] bitmaps;  13:    14:     public AlbumAdapter(Context context) {  15:         this.context = context;  16:         this.cursor = context.getContentResolver().query(  17:                 MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, null, null, null,  18:                 MediaStore.Audio.Albums.DEFAULT_SORT_ORDER);  19:         bitmaps = new Bitmap[cursor.getCount()];  20:         initBitmaps();  21:     }  22:    23:     /**  24:      * 初始化專輯封面圖片  25:      */  26:     private void initBitmaps() {  27:         if (cursor.moveToFirst()) {  28:             do {  29:                 bitmaps[cursor.getPosition()] = MusicUtils.getArtwork(context, -1, cursor  30:                         .getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Albums._ID)));  31:             } while (cursor.moveToNext());  32:         }  33:     }  34:    35:     public int getCount() {  36:         if (cursor != null) {  37:             return cursor.getCount();  38:         }  39:         return 0;  40:     }  41:    42:     public Object getItem(int position) {  43:         return position;  44:     }  45:    46:     public long getItemId(int position) {  47:         if (cursor != null) {  48:             cursor.moveToPosition(position);  49:             return cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Albums._ID));  50:         }  51:         return 0;  52:     }  53:    54:     public View getView(int position, View convertView, ViewGroup parent) {  55:         ImageView iv = new ImageView(context);  56:         iv.setLayoutParams(new Gallery.LayoutParams(100, 100));  57:         iv.setAdjustViewBounds(true);  58:         iv.setImageBitmap(bitmaps[position]);  59:         return iv;  60:     }  61:    62: }
 1: /**   2:  * 歌曲   3:  *    4:  * @author halzhang   5:  */   6: public class AudioAdapter extends BaseAdapter {   7:     8:     private Context context;   9:    10:     private Cursor cursor;  11:     /**專輯ID*/  12:     private int albumId;  13:    14:     public AudioAdapter(Context context, int albumId) {  15:         this.context = context;  16:         this.albumId = albumId;  17:         this.cursor = context.getContentResolver().query(  18:                 MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null,  19:                 MediaStore.Audio.Media.ALBUM_ID + "=" + albumId, null,  20:                 MediaStore.Audio.Media.DEFAULT_SORT_ORDER);  21:     }  22:    23:     public int getCount() {  24:         if (cursor != null) {  25:             return cursor.getCount();  26:         }  27:         return 0;  28:     }  29:    30:     public Object getItem(int position) {  31:         return position;  32:     }  33:    34:     public long getItemId(int position) {  35:         if (cursor != null) {  36:             cursor.moveToPosition(position);  37:             return cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));  38:         }  39:         return 0;  40:     }  41:    42:     public View getView(int position, View convertView, ViewGroup parent) {  43:         cursor.moveToPosition(position);  44:         TextView t = new TextView(context);  45:         String title = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));  46:         t.setLayoutParams(new Gallery.LayoutParams(LayoutParams.WRAP_CONTENT,  47:                 LayoutParams.WRAP_CONTENT));  48:         t.setText(title);  49:         t.setTextColor(Color.BLACK);  50:         return t;  51:     }  52:    53:     /**  54:      * 當專輯改變了,調用此方法更新adapter的數據  55:      * @param albumId 專輯ID  56:      */  57:     public void notifyDataSetChanged(int albumId) {  58:         this.cursor = context.getContentResolver().query(  59:                 MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null,  60:                 MediaStore.Audio.Media.ALBUM_ID + "=" + albumId, null,  61:                 MediaStore.Audio.Media.DEFAULT_SORT_ORDER);  62:         super.notifyDataSetChanged();  63:     }  64:    65: }

Activity

 1: public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener {   2:     3:     private Gallery album;   4:     5:     private Gallery audio;   6:     7:     private AlbumAdapter albumAdapter;   8:     9:     private AudioAdapter audioAdapter;  10:    11:     @Override  12:     protected void onCreate(Bundle savedInstanceState) {  13:         super.onCreate(savedInstanceState);  14:         setContentView(R.layout.audio_player);  15:         setupViews();  16:     }  17:    18:     // 個人習慣  19:     private void setupViews() {  20:         album = (Gallery) findViewById(R.id.gallery);  21:         audio = (Gallery) findViewById(R.id.gallery2);  22:    23:         albumAdapter = new AlbumAdapter(this);  24:    25:         album.setAdapter(albumAdapter);  26:    27:         int aid = (int) albumAdapter.getItemId(0);  28:    29:         audioAdapter = new AudioAdapter(this, aid);  30:         audio.setAdapter(audioAdapter);  31:    32:         audio.setOnItemSelectedListener(this);  33:         album.setOnItemSelectedListener(this);  34:     }  35:    36:     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {  37:         if (parent == album) {  38:             // 專輯被選中  39:             int aid = (int) albumAdapter.getItemId(position);  40:             // 更新歌曲Gallery  41:             audioAdapter.notifyDataSetChanged(aid);  42:         } else if (parent == audio) {  43:             // TODO do something  44:         }  45:    46:     }  47:    48:     public void onNothingSelected(AdapterView<?> parent) {  49:    50:     }

看完上述內容,你們對Android中怎么利用Gallery實現多級聯動有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵石县| 三门县| 岑巩县| 秭归县| 章丘市| 白山市| 安国市| 海口市| 崇文区| 溆浦县| 怀宁县| 修文县| 阜阳市| 会泽县| 巨鹿县| 钦州市| 裕民县| 翁牛特旗| 琼结县| 北辰区| 西平县| 南岸区| 盐池县| 昌黎县| 西乌| 长子县| 原平市| 林甸县| 嵊州市| 方正县| 积石山| 洪洞县| 神池县| 五家渠市| 阳高县| 呈贡县| 绩溪县| 宁波市| 军事| 江门市| 哈尔滨市|