banner 轮播图
public class Fragment1 extends Fragment implements SurfaceHolder.Callback {
ArrayList<String> lists = new ArrayList<>();
ArrayList<String> listti = new ArrayList<>();
SurfaceView surfaceView;
SurfaceHolder holder;
Banner banner;
Path path=new Path();
Button button;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fragment1, null);
banner=inflate. findViewById(R.id.banner);
OkGo.<String>get("http://vueshop.glbuys.com/api/home/index/slide?token=1ec949a15fb709370f").execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
String body = response.body();
Bean bean = new Gson().fromJson(body, Bean.class);
List<Bean.DataBean> data = bean.getData();
for (int i=0;i<data.size();i++){
lists.add("http:"+data.get(i).getImage());
listti.add(data.get(i).getTitle());
}
banner.setImages(lists);
banner.setBannerTitles(listti);
banner.setBannerStyle(BannerConfig.NUM_INDICATOR_TITLE);
banner.setImageLoader(new ImageLoader() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
ImageView imageView1 = imageView;
// int path1 = (int) path;
// imageView1.setImageResource(path1);
Glide.with(context).load((String)path).into(imageView1);
}
@Override
public ImageView createImageView(Context context) {
return new ImageView(context);
}
});
banner.setOnBannerClickListener(new OnBannerClickListener() {
@Override
public void OnBannerClick(int position) {
Toast.makeText(getActivity(), ""+listti.get(position-1), Toast.LENGTH_SHORT).show();
}
});
banner.setDelayTime(1000);
banner.start();
}
});
initView(inflate);
return inflate;
}
@SuppressLint("ClickableViewAccessibility")
private void initView(View inflate) {
surfaceView=inflate.findViewById(R.id.sufer);
holder = surfaceView.getHolder();
holder.addCallback(this);
button=inflate.findViewById(R.id.qing);
surfaceView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, 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 view) {
path.reset();
Toast.makeText(getActivity(), "已清空", Toast.LENGTH_SHORT).show();
}
});
}
@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) {
}
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);
}
}
}
}
画板 path 指定路径
页面切换
public class MainActivity extends AppCompatActivity {
FrameLayout frameLayout;
CommonTabLayout commonTabLayout;
Fragment1 fragment1;
Fragment2 fragment2;
Fragment3 fragment3;
Fragment4 fragment4;
ArrayList<CustomTabEntity> lists = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
commonTabLayout=findViewById(R.id.comm);
fragment1=new Fragment1();
fragment2=new Fragment2();
fragment3=new Fragment3();
fragment4=new Fragment4();
lists.add(new MyTab("我的",R.drawable.note_btn_loved,R.drawable.note_btn_love_white));
lists.add(new MyTab("好友",R.drawable.note_btn_loved,R.drawable.note_btn_love_white));
lists.add(new MyTab("消息",R.drawable.note_btn_loved,R.drawable.note_btn_love_white));
lists.add(new MyTab("首页",R.drawable.note_btn_loved,R.drawable.note_btn_love_white));
commonTabLayout.setTabData(lists);
commonTabLayout.setOnTabSelectListener(new OnTabSelectListener() {
@Override
public void onTabSelect(int position) {
//隐藏未读消息
commonTabLayout.hideMsg(position);
if(position==0){
getSupportFragmentManager().beginTransaction().replace(R.id.fram,fragment1).commit();
}else if(position==1){
getSupportFragmentManager().beginTransaction().replace(R.id.fram,fragment2).commit();
}else if(position==2){
getSupportFragmentManager().beginTransaction().replace(R.id.fram,fragment3).commit();
}else if(position==3){
getSupportFragmentManager().beginTransaction().replace(R.id.fram,fragment4).commit();
}
}
@Override
public void onTabReselect(int position) {
}
});
//TODO 3:可以设置未读消息
commonTabLayout.showDot(1);//小红点显示在第2个
commonTabLayout.showMsg(2,150);//设置未读消息个数
}
}