//导入依赖
implementation 'com.youth.banner:banner:1.4.10'
implementation 'com.flyco.tablayout:FlycoTabLayout_Lib:2.0.2@aar'
//MainActivity
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical"> <FrameLayout android:id="@+id/frame" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> <com.flyco.tablayout.CommonTabLayout android:layout_marginTop="500dp" android:id="@+id/comm" android:layout_width="match_parent" android:layout_height="wrap_content"> </com.flyco.tablayout.CommonTabLayout> </FrameLayout> </LinearLayout>
package com.example.administrator.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.flyco.tablayout.CommonTabLayout; import com.flyco.tablayout.listener.CustomTabEntity; import com.flyco.tablayout.listener.OnTabSelectListener; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { CommonTabLayout commonTabLayout; ArrayList<CustomTabEntity> list=new ArrayList<>(); Fragmen1 fragmen1; Fragmen2 fragmen2; Fragmen3 fragmen3; Fragmen4 fragmen4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); commonTabLayout=findViewById(R.id.comm); fragmen1=new Fragmen1(); fragmen2=new Fragmen2(); fragmen3=new Fragmen3(); fragmen4=new Fragmen4(); list.add(new MyTab("消息",R.mipmap.ic_launcher,R.mipmap.ic_launcher_round)); list.add(new MyTab("好友",R.mipmap.ic_launcher,R.mipmap.ic_launcher_round)); list.add(new MyTab("我的",R.mipmap.ic_launcher,R.mipmap.ic_launcher_round)); list.add(new MyTab("首页",R.mipmap.ic_launcher,R.mipmap.ic_launcher_round)); commonTabLayout.setTabData(list); commonTabLayout.setOnTabSelectListener(new OnTabSelectListener() { @Override public void onTabSelect(int position) { commonTabLayout.hideMsg(position); if (position==0){ getSupportFragmentManager().beginTransaction().replace(R.id.frame,fragmen1).commit(); }else if (position==1){ getSupportFragmentManager().beginTransaction().replace(R.id.frame,fragmen2).commit(); }else if (position==2){ getSupportFragmentManager().beginTransaction().replace(R.id.frame,fragmen3).commit(); }else if (position==3){ getSupportFragmentManager().beginTransaction().replace(R.id.frame,fragmen4).commit(); } } @Override public void onTabReselect(int position) { } }); commonTabLayout.showDot(1); commonTabLayout.showMsg(2,106); } }
package com.example.administrator.myapplication; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.PorterDuff; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; import com.youth.banner.Banner; import com.youth.banner.BannerConfig; import com.youth.banner.loader.ImageLoaderInterface; import java.util.ArrayList; public class Fragmen1 extends Fragment implements SurfaceHolder.Callback { Banner banner; ArrayList<Integer> list=new ArrayList<>(); ArrayList<String> strings=new ArrayList<>(); SurfaceView surfaceView; Path path=new Path(); SurfaceHolder holder; Button button; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view=inflater.inflate(R.layout.item1,null); banner=view.findViewById(R.id.banner); list.add(R.mipmap.aaaa1); list.add(R.mipmap.cc1); list.add(R.mipmap.b1); strings.add("11111111"); strings.add("22222"); strings.add("33333"); banner.setBannerStyle(BannerConfig.NUM_INDICATOR_TITLE); banner.setImages(list); banner.setBannerTitles(strings); banner.setImageLoader(new ImageLoaderInterface() { @Override public void displayImage(Context context, Object path, View imageView) { ImageView imageView1= (ImageView) imageView; int src= (int) path; imageView1.setImageResource(src); } @Override public View createImageView(Context context) { return new ImageView(context); } }); banner.setDelayTime(5000); banner.start(); initview(view); return view; } private void initview(View view) { surfaceView=view.findViewById(R.id.sfaceview); holder=surfaceView.getHolder(); holder.addCallback(this); button=view.findViewById(R.id.bu1); surfaceView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction()==MotionEvent.ACTION_DOWN){ path.moveTo(event.getX(),event.getY()); }else if (event.getAction()==MotionEvent.ACTION_MOVE){ path.lineTo(event.getX(),event.getY()); } return true; } }); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { path.reset(); Toast.makeText(getContext(), "清空了", Toast.LENGTH_SHORT).show(); } }); } @Override public void surfaceCreated(SurfaceHolder holder) { new MyThread().start(); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceDestroyed(SurfaceHolder holder) { } class MyThread extends Thread{ @Override public void run() { super.run(); Paint paint=new Paint(); paint.setStrokeWidth(10); paint.setTextSize(30); paint.setStyle(Paint.Style.STROKE); while (true){ int v=(int)(Math.random()*255); int v1=(int)(Math.random()*255); int v2=(int)(Math.random()*255); paint.setColor(Color.argb(255,v,v1,v2)); try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); } Canvas canvas=holder.lockCanvas(); if (canvas==null){ break; } canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); canvas.drawPath(path,paint); holder.unlockCanvasAndPost(canvas); } } } }
package com.example.administrator.myapplication; import android.content.ContentResolver; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ListView; import java.util.ArrayList; public class Fragmen2 extends Fragment { Button ban1; ListView listView; ArrayList<Music> list=new ArrayList<>(); public View onCreateView(@NonNull LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.item2, null); ban1=view.findViewById(R.id.ban1); listView=view.findViewById(R.id.list); ban1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ContentResolver resolver =getActivity().getContentResolver(); Uri uri= MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; String[] strings={MediaStore.Audio.Media.TITLE,MediaStore.Audio.Media.ARTIST}; Cursor cursor=resolver.query(uri,strings,null,null,null); while (cursor.moveToNext()){ String title=cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)); String password=cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)); list.add(new Music(title,password)); Apter apter=new Apter(getContext(),list); listView.setAdapter(apter); } } }); return view; } }
//效果图