Andriod studio 学习 之 一些效果

效果

在这里插入图片描述
介绍:利用viewpage 实现图片滑动并显示上一张图片与下一张图片的部分区域

代码

xml布局




activity布局

package com.example.zhongguo;import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;import java.util.ArrayList;public class Main2Activity extends AppCompatActivity {private ViewPager vp;private ArrayList list = new ArrayList<>();private Myadpater myadpater;int[] res = new int[]{R.mipmap.view1, R.mipmap.view2, R.mipmap.view3, R.mipmap.view4};private LinearLayout linearLayout;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main2);vp = (ViewPager) findViewById(R.id.vp);linearLayout = (LinearLayout) findViewById(R.id.linearLayout);for (int i = 0; i < res.length; i++) {//拿到每一个资源ImageView imageView = new ImageView(this);imageView.setImageResource(res[i]);}myadpater = new Myadpater(list);vp.setAdapter(myadpater);vp.setOffscreenPageLimit(3);//设置幕后缓存数vp.setPageMargin(10);//设置滑动页边距linearLayout.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {return vp.dispathTouchEvent(event);}});}public class Myadpater extends PagerAdapter {private ArrayList imageViews;public Myadpater(ArrayList imageViews) {this.imageViews = imageViews;}@Overridepublic int getCount() {return imageViews.size();}@Overridepublic boolean isViewFromObject(@NonNull View view, @NonNull Object o) {return view == o;}@NonNull@Override//产生一个新的视图 把控件添加到viewpager上public Object instantiateItem(@NonNull ViewGroup container, int position) {container.addView(imageViews.get(position));//添加return imageViews.get(position);//返回到添加的视图上}@Override//移除一张图片public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {container.removeView(imageViews.get(position));}}
}

效果

在这里插入图片描述
介绍:向左滑动出现删除按钮.点击删除
activity中的xml布局



activity中的代码

package com.example.monthpractise;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {private RecyclerView recycler;private ArrayList strings = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);recycler = (RecyclerView) findViewById(R.id.recycler);strings.add("好好学习");strings.add("天天向上");strings.add("好好学习");strings.add("天天向上");LinearLayoutManager manager = new LinearLayoutManager(this);recycler.setLayoutManager(manager);RVAdapter adapter = new RVAdapter(this, strings);recycler.setAdapter(adapter);}
}

适配器代码

package com.example.monthpractise;import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;import com.daimajia.swipe.SwipeLayout;
import com.daimajia.swipe.adapters.RecyclerSwipeAdapter;import java.util.ArrayList;public class RVAdapter extends RecyclerSwipeAdapter {private Context context;ArrayList strings;public RVAdapter(Context context, ArrayList strings) {this.context = context;this.strings = strings;}@Overridepublic MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {return new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.layout,null));}@Overridepublic void onBindViewHolder(MyViewHolder viewHolder, final int position) {viewHolder.swipeLayout.setShowMode(SwipeLayout.ShowMode.LayDown);//设置滑动模式viewHolder.textView.setText(strings.get(position));viewHolder.delete.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {strings.remove(position);notifyItemRemoved(position);notifyItemRangeChanged(0,strings.size());}});}@Overridepublic int getItemCount() {return strings.size();}@Override//多了一个方法public int getSwipeLayoutResourceId(int position) {return position;}public class MyViewHolder extends RecyclerView.ViewHolder {SwipeLayout swipeLayout;Button delete;TextView textView;public MyViewHolder(@NonNull View itemView) {super(itemView);swipeLayout = itemView.findViewById(R.id.swipid);delete = itemView.findViewById(R.id.delete);textView = itemView.findViewById(R.id.tv);}}
}

适配器中需要的布局





本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部