RecyclerView
RecyclerView是在安卓5.0推出的新的组件,可以实现ListView,GridView,瀑布流的轻松转化。
简单了解完RecycleView后,那么我们就开始弄一个简单的壁纸的app吧
首先 我们要把RecycleView的jar包导进去,这个在我们下载的sdk里面可以找到,如果没有这里附上地址
http://download.****.net/download/sm16111/10249172
也可按照下面来导入 操作如下
点击File 找到Project Structure
点击+号 选择第一个
然后再里面找到recyclerview
点击ok就完成了第一步导入jar包。
接下来 建一个xml文件,代码如下
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.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="com.example.recycler.MainActivity"> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/recyclerview"></android.support.v7.widget.RecyclerView> </android.support.constraint.ConstraintLayout>
然后新建一个壁纸类
package com.example.recycler; public class Bizi { int imageid; String name; public Bizi(int imageid, String name) { this.imageid = imageid; this.name = name; } public int getImageid() { return imageid; } public void setImageid(int imageid) { this.imageid = imageid; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
再建一个适配器类
package com.example.recycler; import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.media.Image; import android.support.v7.graphics.Palette; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import java.util.List; public class RecyclerAdater extends RecyclerView.Adapter<MyViewHolder> { Context context; List<Bizi> bizis; Resources resources; LayoutInflater inflater; public RecyclerAdater(Context context, List<Bizi> bizis) { this.context = context; this.bizis = bizis; this.resources = context.getResources(); this.inflater = LayoutInflater.from(context);//得到布局填充器 } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = inflater.inflate(R.layout.item,parent,false); //将xml布局转化为view对象 final MyViewHolder myViewHolder = new MyViewHolder(view); myViewHolder.imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int position = myViewHolder.getAdapterPosition(); Bizi bizi = bizis.get(position); int id = bizi.getImageid(); Toast.makeText(view.getContext(),bizi.getName(),Toast.LENGTH_SHORT).show();; Intent intent = new Intent(view.getContext(),Show.class); intent.putExtra("id",id); view.getContext().startActivity(intent); } }); return myViewHolder; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { Bizi bizi = bizis.get(position); holder.imageView.setImageResource(bizi.getImageid()); holder.name.setText(bizi.getName()); } @Override public int getItemCount() { return bizis.size(); } } class MyViewHolder extends RecyclerView.ViewHolder { TextView name; ImageView imageView; public MyViewHolder(View itemView) { super(itemView); name = (TextView)itemView.findViewById(R.id.bizi); imageView = (ImageView) itemView.findViewById(R.id.image); } }
接下来就是MainActivity.java里面的代码
package com.example.recycler; import android.support.v4.util.ArrayMap; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.SimpleAdapter; import android.widget.Toast; import java.util.ArrayList; import java.util.List; import java.util.Map; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); RecyclerView recyclerView = (RecyclerView)this.findViewById(R.id.recyclerview); final List<Bizi> list = new ArrayList<>(); list.add(new Bizi(R.drawable.p1,"壁纸一")); list.add(new Bizi(R.drawable.p2,"壁纸二")); list.add(new Bizi(R.drawable.p3,"壁纸三")); list.add(new Bizi(R.drawable.p4,"壁纸四")); list.add(new Bizi(R.drawable.p5,"壁纸五")); list.add(new Bizi(R.drawable.p6,"壁纸六")); list.add(new Bizi(R.drawable.p7,"壁纸七")); list.add(new Bizi(R.drawable.p8,"壁纸八")); list.add(new Bizi(R.drawable.p9,"壁纸九")); list.add(new Bizi(R.drawable.p10,"壁纸十")); list.add(new Bizi(R.drawable.p11,"壁纸十一")); recyclerView.setLayoutManager(new GridLayoutManager(this,2)); // LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); // linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); // recyclerView.setLayoutManager(linearLayoutManager); recyclerView.setItemAnimator(new DefaultItemAnimator()); RecyclerAdater adapter = new RecyclerAdater(this, list); recyclerView.setAdapter(adapter); } }
------------------需要源码的可以私信我 QQ:150091637------------------------
--------------------------------------------源码还有点击放大等功能-------------------------------------------------------