CommonTabLayout使用
音乐
package com.example.banner_use.fragment;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.PorterDuff;
import android.media.MediaPlayer;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.SeekBar;
import com.example.banner_use.R;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
/**
* A simple {@link Fragment} subclass.
*/
public class BlankFragment extends Fragment implements SurfaceHolder.Callback{
private static final String TAG = "BlankFragment";
private Button MusicStart;
private Button MusicPause;
private SurfaceView MusicMedia;
private SeekBar seekBar;
private ListView listId;
private MediaPlayer mediaPlayer;
int count;
int num;
boolean flag;
String string;
SurfaceHolder holder;
List<String> strings;
public BlankFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fragment_blank, container, false);
MusicStart = inflate.findViewById(R.id.Music_start);
MusicPause = inflate.findViewById(R.id.Music_pause);
MusicMedia = inflate.findViewById(R.id.Music_media);
seekBar = inflate.findViewById(R.id.seek_id);
listId = inflate.findViewById(R.id.list_id);
mediaPlayer=new MediaPlayer();
try {
initData();
initListener();
initMusic();
} catch (IOException e) {
e.printStackTrace();
}
return inflate;
}
private void initListener() {
MusicStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
flag=true;
mediaPlayer.start();
}
});
MusicPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
flag=false;
mediaPlayer.pause();
}
});
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
if (b){
mediaPlayer.seekTo(i);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
private void initData() {
strings = new ArrayList<>();
strings.add("————————————————");
// strings.add("————————————————");
// strings.add("————————————————");
// strings.add("————————————————");
// strings.add("————————————————");
// strings.add("————————————————");
// strings.add("————————————————");
strings.add("我曾被无数的冷风吹透我胸口");
strings.add("我曾被遥远的梦逼着我仰望星空");
strings.add("我曾被无数的嘲讽让我放弃我的音乐梦");
strings.add("我曾被无数的黄土 淹没我的澎湃汹涌");
strings.add("————————————————");
strings.add("我曾想要我的歌声 无尽沉沦的感动");
strings.add("我曾把他们当成我风雨过后那一道彩虹");
strings.add("我曾把堕落的原因 都丢给时间");
strings.add("我曾把机会就扔在我眼前");
strings.add("————————————————");
strings.add("我曾把完整的镜子打碎 夜晚的枕头都是眼泪");
strings.add("我多想让过去重来 再给我一次机会");
strings.add("我想说过去的时间 我谁都不为");
strings.add("除了空谈 也就是 事事非非");
strings.add("————————————————");
strings.add("我曾想要我的歌声 无尽沉沦的感动");
strings.add("除了空谈 也就是 事事非非");
strings.add("————————————————");
strings.add("————————————————");
strings.add("————————————————");
strings.add("————————————————");
strings.add("我曾把他们当成我风雨过后那一道彩虹");
strings.add("我曾把堕落的原因 都丢给时间");
strings.add("我曾把机会就扔在我眼前");
strings.add("————————————————");
strings.add("我曾把完整的镜子打碎 夜晚的枕头都是眼泪");
strings.add("我多想让过去重来 再给我一次机会");
strings.add("我曾把完整的镜子打碎 夜晚的枕头都是眼泪");
strings.add("我想说过去的时间 我谁都不为");
strings.add("除了空谈 也就是事事非非");
strings.add("————————————————");
strings.add("我曾把完整的镜子打碎 夜晚的枕头都是眼泪");
strings.add("我多想让过去重来 再给我一次机会");
strings.add("我想说过去的时间 我谁都不为");
strings.add("除了空谈 也就是事事非非");
strings.add("除了空谈 也就是事事非非");
strings.add("————————————————");
strings.add("————————————————");
strings.add("————————————————");
strings.add("————————————————");
strings.add("————————————————");
strings.add("————————————————");
strings.add("————————————————");
strings.add("————————————————");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < strings.size(); i++) {
if (i==strings.size()-1){
sb.append(strings.get(i)+"0");
}else{
sb.append(strings.get(i)+",");
}
}
string = sb.toString();
holder = MusicMedia.getHolder();
holder.addCallback(this);
}
private void initMusic() throws IOException {
mediaPlayer.reset();
mediaPlayer.setDataSource("/sdcard/Music/洛天依,言和 - 深夜诗人.mp3");
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(final MediaPlayer mediaPlayer) {
final int duration = mediaPlayer.getDuration();
seekBar.setMax(duration);
mediaPlayer.start();
final Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
int currentPosition = mediaPlayer.getCurrentPosition();
seekBar.setProgress(currentPosition);
if (currentPosition==duration){
timer.cancel();
}
}
},0,1000);
}
});
}
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
new MyThread().start();
}
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
}
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
mediaPlayer.release();
mediaPlayer=null;
}
class MyThread extends Thread{
@Override
public void run() {
super.run();
while (true){
Paint paint = new Paint();
paint.setColor(Color.GREEN);
paint.setTextSize(80);
try {
Thread.sleep(100);
count-=10;
num++;
if (num%7==0){
paint.setColor(Color.YELLOW);
}
if (num%3==0){
paint.setColor(Color.BLUE);
}if (num%5==0){
paint.setColor(Color.RED);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
Canvas canvas = holder.lockCanvas();
if (canvas==null){
break;
}
if (flag==true){
canvas.drawColor(PixelFormat.TRANSPARENT, PorterDuff.Mode.CLEAR);
canvas.drawText(string,count,200,paint);
holder.unlockCanvasAndPost(canvas);
}else if(flag==false){
holder.unlockCanvasAndPost(canvas);
}
}
}
}
}
视频
package com.example.banner_use.fragment;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.banner_use.R;
/**
* A simple {@link Fragment} subclass.
*/
public class BlankFragment2 extends Fragment {
public BlankFragment2() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_blank_fragment2, container, false);
}
}
画图
package com.example.surfaceviewmediaplayer_01.fragments;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup;
import com.example.surfaceviewmediaplayer_01.R;
/**
* A simple {@link Fragment} subclass.
*/
public class disanFragment extends Fragment implements SurfaceHolder.Callback {
private SurfaceView surfaceViewId;
public disanFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fragment_disan, container, false);
surfaceViewId = (SurfaceView) inflate.findViewById(R.id.surfaceView_id);
SurfaceHolder holder = surfaceViewId.getHolder();
holder.addCallback(this);
return inflate;
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setAlpha(100);
paint.setStyle(Paint.Style.FILL);
paint.setStrokeWidth(20);
paint.setTextSize(36);
Canvas canvas = holder.lockCanvas();
canvas.drawLine(0,0,96,96,paint);
canvas.drawOval(100,300,300,500,paint);
canvas.drawText("呵呵````",100,600,paint);
holder.unlockCanvasAndPost(canvas);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
}