package com.example.app3;
import android.media.MediaPlayer;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup;
import java.io.IOException;
/**
* A simple {@link Fragment} subclass.
*/
public class Fragment1 extends Fragment implements SurfaceHolder.Callback{
private SurfaceView videoMedia;
SurfaceHolder holder;
private MediaPlayer mediaPlayer;
public Fragment1() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View inflate = inflater.inflate(R.layout.fragment_fragment1, container, false);
videoMedia = inflate.findViewById(R.id.video_media);
holder = videoMedia.getHolder();
View viewById = inflate.findViewById(R.id.start_1);
viewById.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mediaPlayer.start();
}
});
View viewById2 = inflate.findViewById(R.id.stop_2);
viewById2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mediaPlayer.pause();
}
});
holder.addCallback(this);
try {
initPlayer();
} catch (IOException e) {
e.printStackTrace();
}
return inflate;
}
private void initPlayer() throws IOException {
if (mediaPlayer==null){
mediaPlayer=new MediaPlayer();
}
mediaPlayer.reset();
mediaPlayer.setDataSource("/mnt/sdcard/嚶嚶嚶.mp4");
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
}
});
}
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
mediaPlayer.setDisplay(surfaceHolder);
}
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
}
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
mediaPlayer.release();
mediaPlayer=null;
}
}
package com.example.app3;
import android.media.MediaPlayer;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup;
import java.io.IOException;
/**
* A simple {@link Fragment} subclass.
*/
public class Fragment1 extends Fragment implements SurfaceHolder.Callback{
private SurfaceView videoMedia;
SurfaceHolder holder;
private MediaPlayer mediaPlayer;
public Fragment1() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View inflate = inflater.inflate(R.layout.fragment_fragment1, container, false);
videoMedia = inflate.findViewById(R.id.video_media);
holder = videoMedia.getHolder();
View viewById = inflate.findViewById(R.id.start_1);
viewById.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mediaPlayer.start();
}
});
View viewById2 = inflate.findViewById(R.id.stop_2);
viewById2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mediaPlayer.pause();
}
});
holder.addCallback(this);
try {
initPlayer();
} catch (IOException e) {
e.printStackTrace();
}
return inflate;
}
private void initPlayer() throws IOException {
if (mediaPlayer==null){
mediaPlayer=new MediaPlayer();
}
mediaPlayer.reset();
mediaPlayer.setDataSource("/mnt/sdcard/嚶嚶嚶.mp4");
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
}
});
}
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
mediaPlayer.setDisplay(surfaceHolder);
}
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
}
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
mediaPlayer.release();
mediaPlayer=null;
}
}
package com.example.app3;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup;
import androidx.fragment.app.Fragment;
public class Fragment3 extends Fragment implements SurfaceHolder.Callback {
private SurfaceView surfaceViewId;
public Fragment3() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fragment_fragment3, 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) {
}
}
package com.example.app3;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;
import android.content.Context;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.ListView;
import com.bumptech.glide.Glide;
import com.flyco.tablayout.CommonTabLayout;
import com.flyco.tablayout.SlidingTabLayout;
import com.flyco.tablayout.listener.CustomTabEntity;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import com.youth.banner.Transformer;
import com.youth.banner.listener.OnBannerListener;
import com.youth.banner.loader.ImageLoader;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private Banner banner;
private SlidingTabLayout commonTab;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().hide();
banner = (Banner) findViewById(R.id.banner);
commonTab = (SlidingTabLayout) findViewById(R.id.slide_tab2);
// ArrayList<CustomTabEntity> list=new ArrayList<>();
// MyEmtity myEmtity = new MyEmtity("賈婷是豬", R.mipmap.b2, R.mipmap.b);
// list.add(myEmtity);
//
// list.add(new MyEmtity("賈婷真的是豬豬",R.mipmap.c,R.mipmap.e2));
// list.add(new MyEmtity("賈婷真的是豬豬俠",R.mipmap.c2,R.mipmap.e));
// commonTab.setTabData(list);
ArrayList<Fragment> fragments=new ArrayList<>();
fragments.add(new Fragment1());
fragments.add(new Fragment2());
fragments.add(new Fragment3());
ViewPager viewPager=findViewById(R.id.vp);
MyAdapter myAdapter = new MyAdapter(getSupportFragmentManager(), fragments);
viewPager.setAdapter(myAdapter);
String[] titles=new String[]{"賈婷是豬","賈婷是豬豬","賈婷是豬豬豬"};
commonTab.setViewPager(viewPager,titles);
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE);
banner.setBannerAnimation(Transformer.ZoomOut);
banner.setImageLoader(new MyLoader());
final List<String> paths=new ArrayList<>();
paths.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1565777762164&di=eb6b88e8bb220b57b9122ff16585e795&imgtype=0&src=http%3A%2F%2Fpic41.nipic.com%2F20140508%2F18609517_112216473140_2.jpg");
paths.add("http://img5.duitang.com/uploads/blog/201310/24/20131024150229_2WkWe.thumb.600_0.jpeg");
paths.add("http://img4.duitang.com/uploads/blog/201310/24/20131024145724_PViiF.jpeg");
banner.setImages(paths);
List<String> strings=new ArrayList<>();
strings.add("嚶嚶嚶1");
strings.add("嚶嚶嚶3");
strings.add("嚶嚶嚶2");
banner.setBannerTitles(strings);
banner.setOnBannerListener(new OnBannerListener() {
@Override
public void OnBannerClick(int position) {
}
});
banner.start();
}
public class MyLoader extends ImageLoader{
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load((String) path).into(imageView);
}
}
// public class MyEmtity implements CustomTabEntity{
// private String title;
// private int seiconselectID;
// private int unsellctIconid;
//
// public MyEmtity(String title, int seiconselectID, int unsellctIconid) {
// this.title = title;
// this.seiconselectID = seiconselectID;
// this.unsellctIconid = unsellctIconid;
// }
//
// @Override
// public String getTabTitle() {
// return title;
// }
//
// @Override
// public int getTabSelectedIcon() {
// return seiconselectID;
// }
//
// @Override
// public int getTabUnselectedIcon() {
// return unsellctIconid;
// }
// }
public class MyAdapter extends FragmentPagerAdapter {
private ArrayList<Fragment> data;
public MyAdapter(FragmentManager fm, ArrayList<Fragment> data) {
super(fm);
this.data=data;
}
@Override
public Fragment getItem(int position) {
return data.get(position);
}
@Override
public int getCount() {
return data.size();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<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="wrap_content"
android:orientation="vertical"
tools:context=".MainActivity">
<com.youth.banner.Banner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="200dp">
</com.youth.banner.Banner>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.viewpager.widget.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</androidx.viewpager.widget.ViewPager>
<com.flyco.tablayout.SlidingTabLayout
android:layout_width="match_parent"
android:id="@+id/slide_tab2"
android:layout_alignParentBottom="true"
app:tl_tab_space_equal="true"
app:tl_iconHeight="30dp"
app:tl_iconWidth="30dp"
app:tl_textSelectColor="@color/colorPrimary"
app:tl_textUnselectColor="@color/colorAccent"
android:layout_height="60dp">
</com.flyco.tablayout.SlidingTabLayout>
</RelativeLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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=".Main2Activity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.flyco.tablayout.CommonTabLayout
android:layout_width="match_parent"
android:id="@+id/common_tab"
android:layout_alignParentBottom="true"
app:tl_iconHeight="30dp"
app:tl_iconWidth="30dp"
app:tl_textSelectColor="@color/colorPrimaryDark"
app:tl_textUnselectColor="@color/colorAccent"
android:layout_height="60dp">
</com.flyco.tablayout.CommonTabLayout>
<com.flyco.tablayout.SlidingTabLayout
android:layout_width="match_parent"
android:id="@+id/slide_tab"
app:tl_iconHeight="30dp"
app:tl_iconWidth="30dp"
app:tl_textSelectColor="@color/colorPrimary"
app:tl_textUnselectColor="@color/colorAccent"
android:layout_above="@+id/common_tab"
android:layout_height="60dp">
</com.flyco.tablayout.SlidingTabLayout>
<com.flyco.tablayout.SegmentTabLayout
android:layout_width="match_parent"
android:id="@+id/segment_tab"
app:tl_iconHeight="30dp"
app:tl_iconWidth="30dp"
android:layout_centerHorizontal="true"
app:tl_textUnselectColor="@color/colorAccent"
android:layout_above="@+id/slide_tab"
android:layout_height="60dp">
</com.flyco.tablayout.SegmentTabLayout>
<androidx.viewpager.widget.ViewPager
android:id="@+id/lin"
android:layout_width="match_parent"
android:layout_height="400dp">
</androidx.viewpager.widget.ViewPager>
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<?xml version="1.0" encoding="utf-8"?>
<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=".Main3Activity">
<com.scwang.smart.refresh.layout.SmartRefreshLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/smart_refresh">
<view class="androidx.appcompat.app.AlertController$RecycleListView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recycler">
</view>
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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="vertical"
tools:context=".Fragment1"
android:background="#8800FA00"
>
<!-- TODO: Update blank fragment layout -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/start_1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="播放" />
<Button
android:id="@+id/stop_2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="暫停" />
</LinearLayout>
<SurfaceView
android:id="@+id/video_media"
android:layout_width="match_parent"
android:layout_height="600dp" />
</FrameLayout>