Proyecto de entrenamiento de Android: basado en el reproductor de música con tarjeta de memoria V04 (registro de entrenamiento)

## La primera etapa del proyecto de capacitación: basada en el reproductor de música de la tarjeta de almacenamiento V04

( 1) Requisitos funcionales
Según el reproductor de música con tarjeta de memoria V0.3, realice las siguientes modificaciones:

El método de creación puede escanear todos los archivos mp3 en la tarjeta de memoria (usando un algoritmo recursivo).
Use clases de aplicaciones personalizadas para almacenar datos y métodos globales.
Use tareas asincrónicas para completar el escaneo de la tarjeta de memoria que consume mucho tiempo.
Descripción: Hay pocos directorios en el tarjeta de memoria del emulador, por lo que el escaneo es muy fácil. Está casi terminado y casi no hay una barra de progreso en espera. Es mejor ejecutar el programa en una máquina real para probar.
(2) Efecto de ejecución
Inserte la descripción de la imagen aquí
(3) Implicando puntos de conocimiento
1. Etiqueta (TextView)
2. Botón (Botón)
3. Reproductor multimedia (MediaPlayer)
4. Barra de progreso (ProgressBar)
5. Hilo (Hilo)
6. Procesador de mensajes (Controlador
7 Vista de lista (ListView)
8. Tarea asincrónica (AsyncTask)
9. Aplicación (Aplicación)
10. Algoritmo recursivo
(4) Pasos de implementación
1. Copie el material de la imagen en el directorio dibujable y el directorio mipmap
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2. Botón selector de imagen de fondo
(1) Botón de reproducción selector de imagen de fondo-play_button_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/play_button_pressed" android:state_pressed="true" />
    <item android:drawable="@drawable/play_button" android:state_pressed="false" />
</selector>

(2) Botón de pausa selector de imagen de fondo-pause_button_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/pause_button_pressed" android:state_pressed="true" />
    <item android:drawable="@drawable/pause_button" android:state_pressed="false" />
</selector>

(3) Selector de imagen de fondo del botón anterior-previous_button_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/previous_button_pressed" android:state_pressed="true" />
    <item android:drawable="@drawable/previous_button" android:state_pressed="false" />
</selector>

(4) Selector de imagen de fondo del botón Siguiente-next_button_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/next_button_pressed" android:state_pressed="true" />
    <item android:drawable="@drawable/next_button" android:state_pressed="false" />
</selector>

3. El archivo de recursos de diseño principal activity_main.xml
Inserte la descripción de la imagen aquí

<?xml version="1.0" encoding="utf-8"?>
<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"
    android:background="@drawable/background"
    android:orientation="vertical"
    android:padding="20dp"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <ProgressBar
            android:id="@+id/pbScanMusic"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:visibility="gone" />

        <TextView
            android:id="@+id/tvScanMusic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/scan_music"
            android:textColor="#0000ff"
            android:textSize="25sp"
            android:visibility="gone" />
    </LinearLayout>

    <ListView
        android:id="@+id/lvMusicName"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginBottom="16dp"
        android:layout_weight="8" />

    <TextView
        android:id="@+id/tvMusicName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:textColor="#0000ff"
        android:textSize="20sp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:layout_weight="0.5"
        android:gravity="center"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tvCurrentPosition"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:textColor="#ff0000" />

        <ProgressBar
            android:id="@+id/pbMusicProgress"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="6" />

        <TextView
            android:id="@+id/tvDuration"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:textColor="#ff00ff" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:gravity="center"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btnPrevious"
            android:layout_width="60dp"
            android:layout_height="50dp"
            android:background="@drawable/previous_button_selector"
            android:onClick="doPrevious" />

        <Button
            android:id="@+id/btnPlayOrPause"
            android:layout_width="60dp"
            android:layout_height="50dp"
            android:background="@drawable/play_button_selector"
            android:onClick="doPlayOrPause" />

        <Button
            android:id="@+id/btnNext"
            android:layout_width="60dp"
            android:layout_height="50dp"
            android:background="@drawable/next_button_selector"
            android:onClick="doNext" />
    </LinearLayout>
</LinearLayout>

4. Archivo de recursos de cadena strings.xml
Inserte la descripción de la imagen aquí
5. Crear plantilla de elemento de lista de nombres de música music_name_list_item.xml
Inserte la descripción de la imagen aquí
6. Crear subpaquete ui y arrastrar MainActivity al subpaquete ui
Inserte la descripción de la imagen aquí

6. Cree un subpaquete de entidad y cree una clase de entidad de música Música en él.
Inserte la descripción de la imagen aquí
7. Cree un subpaquete de aplicación y cree una clase de aplicación de reproductor de música MusicPlayerApplication en él.
Inserte la descripción de la imagen aquí
8. Cree un subpaquete de adaptador y cree un adaptador de música MusicAdapter en él.
Inserte la descripción de la imagen aquí
9. Clase de interfaz principal- MainActivity
(1) Declare variables,
Inserte la descripción de la imagen aquí
inicie la aplicación y verifique el efecto
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/triet/article/details/112367814
Recomendado
Clasificación