Karussellkarte für Android-Musikplayer (3).

Dies ist ein einfaches Musik-Player-Projekt, das ich letztes Jahr in meinem zweiten Jahr gemacht habe: Es wurde so viel wie möglich geschrieben, um Kugou Music zu imitieren, und die spezifischen Funktionen sind wie folgt:

1: Startanimation: Klicken Sie, um das Programm auszuführen, und es erscheint ein zweisekündiges Video, ähnlich der Startanimation von Kugou Music, sehr beeindruckend!

2: Login-Registrierungsschnittstelle: Geben Sie die Kontonummer und das Passwort ein, um die Anmeldeinformationen zu überprüfen!

3: Karussell: Genau das gleiche wie bei Kugou Music, es gibt ein automatisches Zykluskarussell über der Hauptschnittstelle, klicken Sie auf die Bildinformationen des Karussells, um den entsprechenden spezifischen Service aufzurufen, sehr zusätzliche Punkte!

4: Der Plattenspieler der Musikaufnahme, der Fortschrittsbalken der Songsynchronisierung und das Anhalten/Wiedergeben/Fortfahren/Umschalten der Musik!

5: Musiksuche ist realisiert!

6: Spielen Sie die Videosäule ab!

7; Das Layout der persönlichen Informationsschnittstelle wird realisiert, wie z. B. Feedback, Bewertung, mehr, Geschlecht, Alter, Spitzname, Sammlung usw.!

Der Karussellcode lautet wie folgt:

Paket com.ypc.xiaoxiongmusic;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.media.Image;
import android.net.Uri;
android.os.Bundle importieren;
import android.os.Handler;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.TextView;
android.app.Fragment importieren;

import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
java.util.ArrayList importieren;
java.util.List importieren;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

importiere statische android.view.View.VISIBLE;

@SuppressLint("ValidFragment")
public class musicFragment erweitert Fragment {
    Listenansicht lv;
    Suchansicht Suchansicht;
    privater ViewPager mViewPaper;
    private List<ImageView>-Bilder;
    private List<View>-Punkte;
    private int aktuellesElement;
    //Position des letzten Punktes aufzeichnen
    private int altePosition = 0;
    // Speichern Sie die ID des Bildes
    private int ausgewählte Position = 0;
    private ImageView bf;
    private int[] imageIds = new int[]{
            R.drawable.lunchat1,
            R.drawable.lunchatu2,
            R.drawable.lunchatu3,
            R.drawable.lunchatu2,
            R.drawable.lunchatu3
    };
    // Speichern Sie den Titel des Bildes
    privater String[] Titel = neuer String[]{
            "Wir sehen uns wieder, du bist es immer noch",
            „Ich habe lange auf diesen Tag gewartet“,
            "Das geniale Mädchen kehrt wieder zurück",
            "Stell dir Musik vor, erleuchte dich und mich",
            "HALLO, DY.MEMORY"
    };
    privater TextView-Titel;
    privater ViewPagerAdapter-Adapter;
    privater ScheduledExecutorService scheduledExecutorService;
    private statische Liste<Ganzzahl> sPics=neue ArrayList<>();
    // verwendet, um die Farbe zu dieser Zeit zu testen
   /* statisch {
        sPics.add (R.drawable.b1);
        sPics.add (R.drawable.b2);
        sPics.add (R.drawable.b3);
    }*/
    private ImageView m1,m2,m3,m4;
    private Ansicht Ansicht;
    public static String[] name={"Taeyeon(태연) - 들리나요(Kannst du mich hören)","Taeyeon(태연) - 제주도의푸른밤(Blue Night of Jeju Island)","Taeyeon(태연) ) - 그리고하나 (There is one more)“, „Tae Yeon (태연) – Rescue Me“, „Tae Yeon (태연) – My Love (Duett Ver.)“, „Hua Chenyu – I really want to love this world (Live )",
            „Hua Chenyu – Gespräche mit den Kindern des Mars“, „Hua Chenyu – Der König und der Bettler“, „Hua Chenyu – Stierkampf (Live)“, „Hua Chenyu – Staub im Feuerwerk“, „Hua Chenyu – Irrenhaus (Live) ", "Hua Chenyu- Travel Around", "Hua Chenyu- Searching", "Hua Chenyu- Boring People", "Hua Chenyu- For Forever", "Hua Chenyu- Mayfly", "Hua Chenyu- We (Live)", "Hua Chenyu Woo-Heterogen",
            „Hua Chenyu – Ich sorge mich um dich“, „Hua Chenyu – Du musst glauben, dass dies nicht der letzte Tag ist“, „Hua Chenyu – Jackdaw Boy“, „Hua Chenyu – Qi Tian“, „Zhang Yixing – wird alles gut “, „Zhang Yixing – Gute Nacht“, „Zhang Yixing – Allein“, „Zhang Yixing – Maske (Live)“, „Zhang Yixing – Oma“, „Zhang Yixing – Ich bin nicht gut“, „Zhang Yixing – Beten“ , "Tae Yeon (태연) - Gee (Busking Ver.)(Live)", "TAEYEON(태연) - 만약에(If) (Busking Ver.)(Live)",
            "Tae Yeon (태연) - Bösewicht (Busking Ver.) (Live)", "Tae Yeon (태연) - 기억을걷는시간 (Time to Gather Memories) (Busking Ver.) (Live)", "Leslie Cheung - Seltsam, du bist zu schön“, „Leslie Cheung – linke und rechte Hand“, „Leslie Cheung – zumindest du (00 Live) (Live-Version)“, „Leslie Cheung-me“};
    public static int[] icons={R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx, R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx
            ,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx .drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx
            ,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx,R.drawable.musicx .drawable.musicx,R.drawable.musicx};
    @Überschreiben
    öffentliche Ansicht onCreateView(LayoutInflater Inflater, ViewGroup Container, Bundle savedInstanceState){

        View view = inflater.inflate(R.layout.fragment_music, container, false);
        //lv.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, name));
        searchView =view.findViewById(R.id.sv);
        lv=view.findViewById(R.id.lv);
        lv.setTextFilterEnabled (true);
        // Suchtext-Listener festlegen
        searchView.setOnQueryTextListener (neuer SearchView.OnQueryTextListener() {
            // Diese Methode wird ausgelöst, wenn auf die Suchschaltfläche geklickt wird
            @Überschreiben
            public boolean onQueryTextSubmit(String-Abfrage) {
                falsch zurückgeben;
            }
            // Diese Methode auslösen, wenn sich der Suchinhalt ändert
            @Überschreiben
            public boolean onQueryTextChange(String neuerText) {
                if (!TextUtils.isEmpty(newText)){
                    lv.setFilterText(neuerText);
                }anders{
                    lv.clearTextFilter();
                }
                falsch zurückgeben;
            }
        });
        bf=view.findViewById(R.id.bf);
        mViewPaper = (ViewPager)Ansicht. findViewById (R.id.vp);
        Bilder = neue ArrayList<ImageView>();
        for(int i = 0; i <imageIds.length; i++){
            ImageView imageView = new ImageView(getActivity());
            imageView.setBackgroundResource(imageIds[i]);
            images.add (Bildansicht);
        }
        Punkte = neue ArrayList<View>();
        dots.add(view.findViewById(R.id.dot_0));
        dots.add(view.findViewById(R.id.dot_1));
        dots.add(view.findViewById(R.id.dot_2));
        dots.add(view.findViewById(R.id.dot_3));
        dots.add(view.findViewById(R.id.dot_4));
        title = (TextView) view.findViewById (R.id.title);
        title.setText(titel[0]);
        Adapter = neuer ViewPagerAdapter();
        mViewPaper.setAdapter (Adapter);
        //Auf die Ontauch-Klick-Methode der Illustration
        mViewPaper.setOnTouchListener (neuer View.OnTouchListener() {
            int Flocke = 0 ;
            public boolean onTouch(View v, MotionEvent-Ereignis) {
                Schalter (event.getAction()) {
                    Fall MotionEvent.ACTION_DOWN:
                        Flocke = 0 ;
                        brechen ;
                    Fall MotionEvent.ACTION_MOVE:
                        Flocke = 1 ;
                        brechen ;
                    Fall MotionEvent.ACTION_UP :
                        wenn (Flag == 0) {
                            int item = mViewPaper.getCurrentItem();
                            wenn (Element == 0) {
                                Absicht Absicht = neue Absicht ();
                                intention.setAction("android.intent.action.VIEW");
                                Uri content_url = Uri.parse("https://www.kuaishou.com/f/X-5hKhok9ebbLDq1");//Fügen Sie den Link hier ein
                                intention.setData (Inhalts-URL);
                                startActivity (Absicht);
                            } Sonst wenn (Element == 1) {
                                Absicht Absicht = neue Absicht ();
                                intention.setAction("android.intent.action.VIEW");
                                Uri content_url = Uri.parse("https://www.kuaishou.com/f/X-5hKhok9ebbLDq1");//Fügen Sie den Link hier ein
                                intention.setData (Inhalts-URL);
                                startActivity (Absicht);
                            } Sonst wenn (Element == 2) {
                                Absicht Absicht = neue Absicht ();
                                intention.setAction("android.intent.action.VIEW");
                                Uri content_url = Uri.parse("https://www.kuaishou.com/f/X-5hKhok9ebbLDq1");//Fügen Sie den Link hier ein
                                intention.setData (Inhalts-URL);
                                startActivity (Absicht);
                            }sonst wenn (Element == 3) {
                                Absicht Absicht = neue Absicht ();
                                intention.setAction("android.intent.action.VIEW");
                                Uri content_url = Uri.parse("https://www.kuaishou.com/f/X-5hKhok9ebbLDq1");//Fügen Sie den Link hier ein
                                intention.setData (Inhalts-URL);
                                startActivity (Absicht);
                            } Sonst wenn (Element == 4) {
                                Absicht Absicht = neue Absicht ();
                                intention.setAction("android.intent.action.VIEW");
                                Uri content_url = Uri.parse("https://www.kuaishou.com/f/X-5hKhok9ebbLDq1");//Fügen Sie den Link hier ein
                                intention.setData (Inhalts-URL);
                                startActivity (Absicht);
                            }
                        }
                        brechen ;
                }
                falsch zurückgeben;
            }
        });
        mViewPaper.setOnPageChangeListener (neuer ViewPager.OnPageChangeListener() {
            @Überschreiben
            public void onPageSelected(int position) {
                title.setText (Titel [Position]);
                dots.get(position).setBackgroundResource(R.drawable.red);
                //Toast.makeText(getActivity(),"hurhurhghrui",Toast.LENGTH_SHORT).show();
                dots.get(oldPosition).setBackgroundResource(R.drawable.pure);
                altePosition = Position;
                aktuellerArtikel = Position;
            }
            @Überschreiben
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }
            @Überschreiben
            public void onPageScrollStateChanged(int arg0) {
            }
        });
        m1=view.findViewById(R.id.m1);
        m2=view.findViewById(R.id.m2);
        m3=view.findViewById(R.id.m3);
         m4=view.findViewById(R.id.m4);
        m1.setOnClickListener (neuer View.OnClickListener() {
            @Überschreiben
            public void onClick(View view) {
                Absicht intention4=neue Absicht(getActivity(),tukuActivity.class);
                startActivity(intent4);
            }
        });
        m2.setOnClickListener (neuer View.OnClickListener() {
            @Überschreiben
            public void onClick(View view) {
                Absicht intention5=neue Absicht(getActivity(),paihangbangActivity.class);
                StartAktivität (Absicht5);
            }
        });
        m3.setOnClickListener (neuer View.OnClickListener() {
            @Überschreiben
            public void onClick(View view) {
                Absicht intention6=neue Absicht(getActivity(),fenleiActivity.class);
                startActivity(intent6);
            }
        });
        //ListView listView=view.findViewById(R.id.lv);
        MyBaseAdapter adapter=neuer MyBaseAdapter();
        lv.setAdapter (Adapter);
        lv.setOnItemClickListener (neuer AdapterView.OnItemClickListener() {
            @Überschreiben
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intention=new Intent(getActivity(),Music_Activity.class);//Erzeuge ein Intent-Objekt und starte die Prüfung
                //Daten im Intent-Objekt speichern
                intention.putExtra("name",name[position]);
                intention.putExtra("position",String.valueOf(position));
                startActivity (Absicht);
               lv.setSelector (R.drawable.bf1);
            }
        });
        Rückansicht;
    }

    private Klasse ViewPagerAdapter erweitert PagerAdapter {

        @Überschreiben
        public int getCount() {
            Bilder zurückgeben. Größe ();
        }

        @Überschreiben
        public boolean isViewFromObject(Ansicht arg0, Objekt arg1) {
            Rückgabe arg0 == arg1;
        }
        @Überschreiben
        public void destroyItem(ViewGroup view, int position, Object object) {
            // TODO Automatisch generierter Methoden-Stub
            view.removeView (images.get (Position));
        }
        @Überschreiben
        öffentliches Objekt instantiateItem (ViewGroup-Ansicht, int-Position) {
            // TODO Automatisch generierter Methoden-Stub
            view.addView (images.get (Position));
            Bilder zurückgeben.get (Position);
        }
    }
   /* @Überschreiben
    public boolean onCreateOptionsMenu(Menü menu) {
        // Menü aufblasen; Dadurch werden Elemente zur Aktionsleiste hinzugefügt, falls vorhanden.
        getMenuInflater().inflate(R.menu.main, menu);
        gib true zurück;
    }*/

    /**
     * Verwenden Sie den Thread-Pool, um das Animationskarussell regelmäßig auszuführen
     */
    @Überschreiben
    public void onStart() {
        // TODO Automatisch generierter Methoden-Stub
        super.onStart();
        scheduleExecutorService = Executors.newSingleThreadScheduledExecutor();
        geplantExecutorService.scheduleWithFixedDelay(
                neue ViewPageTask(),
                2,
                2,
                Zeiteinheit.SEKUNDEN);
    }
    /**
     * Bildkarussell-Aufgabe
     * @Autor liuyazhuang
     *
     */
    private Klasse ViewPageTask implementiert Runnable{
        @Überschreiben
        öffentlich void run() {
            aktuellesElement = (aktuellesElement + 1) % imageIds.length;
            mHandler.sendEmptyMessage(0);
        }
    }
    /**
     * Empfangen Sie die vom untergeordneten Thread übergebenen Daten
     */
    private Handler mHandler = new Handler(){
        public void handleMessage(android.os.Message msg) {
            mViewPaper.setCurrentItem(aktuellesItem);
        };
    };
    @Überschreiben
    öffentliche void onStop() {
        // TODO Automatisch generierter Methoden-Stub
        super.onStop();
        if(scheduledExecutorService != null){
            geplantExecutorService.shutdown();
            geplantExecutorService = null;
        }
    }
    Klasse MyBaseAdapter erweitert BaseAdapter{
        @Überschreiben
        public int getCount(){Rückgabename.Länge;}
        @Überschreiben
        öffentliches Objekt getItem(int i){Rückgabename[i];}
        @Überschreiben
        public long getItemId(int i){return i;}

        @Überschreiben
        public View getView(int i ,View convertView, ViewGroup parent) {
            View view=View.inflate(musicFragment.this.getActivity(),R.layout.item_layout,null);
            TextView tv_name=view.findViewById(R.id.item_name);
            ImageView iv=view.findViewById(R.id.iv);
            ImageView bf=view.findViewById(R.id.bf);
            tv_name.setText(name[i]);
            iv.setImageResource(Symbole[i]);
            Rückansicht;
        }
    }

}

Der entsprechende Code der XML-Schnittstellendatei lautet wie folgt:

<?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:orientation="vertikal">
    <Suchansicht
        android:id="@+id/sv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <androidx.viewpager.widget.ViewPager
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="213dp"></androidx.viewpager.widget.ViewPager>
    <LinearesLayout
        android:layout_width="match_parent"
        android:layout_height="45dip"
        android:layout_gravity="unten"
android:background="@drawable/pure"
        android:gravity="center"
        android:orientierung="vertikal" >

        <Textansicht
            android:id="@+id/titel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Bildtitel"
            android:textColor="#0C0C0C" />

        <LinearesLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="3dip"
            android:orientation="horizontal" >

            <Ansehen
                android:id="@+id/dot_0"
                android:layout_width="5dip"
                android:layout_height="5dip"
                android:layout_marginLeft="2dip"
                android:layout_marginRight="2dip"
                android:background="#66BD0F32"/>

            <Ansehen
                android:id="@+id/dot_1"
                android:layout_width="5dip"
                android:layout_height="5dip"
                android:layout_marginLeft="2dip"
                android:layout_marginRight="2dip"
                android:background="#66BD0F32"/>
            <Ansehen
                android:id="@+id/dot_2"
                android:layout_width="5dip"
                android:layout_height="5dip"
                android:layout_marginLeft="2dip"
                android:layout_marginRight="2dip"
                android:background="#66BD0F32"/>
            <Ansehen
                android:id="@+id/dot_3"
                android:layout_width="5dip"
                android:layout_height="5dip"
                android:layout_marginLeft="2dip"
                android:layout_marginRight="2dip"
                android:background="#66BD0F32"/>
            <Ansehen
                android:id="@+id/dot_4"
                android:layout_width="5dip"
                android:layout_height="5dip"
                android:layout_marginLeft="2dip"
                android:layout_marginRight="2dip"
                android:background="#66BD0F32"/>

        </LinearLayout>
    </LinearLayout>
    <LinearesLayout
        android:layout_marginTop="20dp"
        android:layout_width="match_parent"
        android:layout_height="83dp"
        android:orientation="horizontal">

        <Bildansicht
            android:id="@+id/m1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:src="@drawable/ylu" />

        <Bildansicht
            android:layout_weight="1"
            android:id="@+id/m2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:src="@drawable/phbang" />
        <Bildansicht
            android:layout_weight="1"
            android:id="@+id/m3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:src="@drawable/flei" />
        <Bildansicht
            android:layout_weight="1"
            android:id="@+id/m4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:src="@drawable/cnxhuan" />

    </LinearLayout>
    <Listenansicht
        android:background="@drawable/yybj1"
        android:id="@+id/lv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>

Der Screenshot des Effekts sieht wie folgt aus:

 

 

Supongo que te gusta

Origin blog.csdn.net/Abtxr/article/details/126856942
Recomendado
Clasificación