张萌&韩墨羽——CommonTabLayout使用

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) {

    }
}
智慧校园建设是当前高校关注的焦点之一。本文将从智慧校园建设的问题与对策、水平评价、第三方企业代理、国内研究综述和技术标准等方面进行综合分析。 首先,文献[6]针对高校智慧校园建设问题进行了研究。从智慧校园建设的现状和存在的问题出发,提出了相应的对策。例如,加强对智慧校园建设的投入、完善智慧校园建设的相关规定等。 其次,文献[7]则从智慧校园建设水平评价出发,提出了评价指标和方法,并对评价结果进行了解读。该文献为高校智慧校园建设提供了一定的参考依据。 此外,文献[8]则提出了第三方企业代理智慧校园建设、评价与改进策略。该方案可以有效地提高智慧校园建设效率和质量,避免了高校在建设过程中可能遇到的困难。 同时,文献[9]则对国内智慧校园研究综述进行了总结和反思。该文献指出,虽然国内对智慧校园建设进行了一定的研究,但是仍然存在很多问题需要解决,例如如何保证智慧校园中的数据安全和隐私保护等。 最后,文献[10]则从技术标准的角度探讨了智慧校园建设的相关问题。该文献指出,智慧校园建设需要遵循相应的技术标准,才能保证智慧校园的正常运行。 综合以上五篇文献可以看出,智慧校园建设是当前高校关注的重要领域。虽然各高校在智慧校园建设方面已经有所建设,但是仍然存在很多问题需要解决。例如,如何保证数据的安全和隐私的保护等。在未来的发展中,除了需要加强对智慧校园建设的投入之外,还需要加强对智慧校园建设中所面临的问题的研究与解决。同时,在智慧校园建设过程中,需要遵循相应的技术标准,以保证智慧校园的正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值