package com.marshalchen.common.demoofui.rippleDrawable;
import android.app.Activity;
import android.content.res.ColorStateList;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.marshalchen.common.demoofui.R;
import com.marshalchen.common.uimodule.rippleDrawable.RippleDrawable;
import java.util.ArrayList;
import java.util.List;
public class RippleDrawableActivity extends Activity{
ColorStateList stateList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View decor = getWindow().getDecorView();
RecyclerView recyclerView = new RecyclerView(this);
recyclerView.setPadding(20, 20, 20, 20);
stateList = getResources().getColorStateList(R.color.ripple_drawable_example_colors_state);
setContentView(recyclerView);
recyclerView.setAdapter(new RecyclerAdapter());
recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
recyclerView.setHasFixedSize(true);
recyclerView.setItemViewCacheSize(5);
// recyclerView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
// @Override
// public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Toast.makeText(parent.getContext(), position + view.toString(), Toast.LENGTH_SHORT)
// .show();
// }
// });
}
public class Holder extends RecyclerView.ViewHolder{
TextView mNumberView;
public Holder(View itemView) {
super(itemView);
mNumberView = (TextView) itemView.findViewById(R.id.number);
}
public void bindBackground(){
mNumberView.setClickable(true);
RippleDrawable.makeFor(mNumberView, stateList, true);
}
public void setText(Number number){
mNumberView.setText( String.valueOf(number.intValue()) );
}
}
public class RecyclerAdapter extends RecyclerView.Adapter<Holder>{
public List<Integer> mItems = new ArrayList<Integer>();
public RecyclerAdapter() {
for(int index = 0; index < 100; index++){
mItems.add(index);
}
}
@Override
public Holder onCreateViewHolder(ViewGroup group, int i) {
View v = LayoutInflater.from(group.getContext())
.inflate(R.layout.ripple_drawable_layout_item, group, false);
return new Holder(v);
}
@Override
public void onBindViewHolder(Holder holder, int i) {
holder.setText(mItems.get(i));
holder.bindBackground();
}
@Override
public int getItemCount() {
return mItems.size();
}
}
class ListAdapter extends BaseAdapter{
RecyclerAdapter mAdapter = new RecyclerAdapter();
@Override
public int getCount() {
return mAdapter.getItemCount();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return mAdapter.getItemId(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
Holder holder = mAdapter.onCreateViewHolder(parent, position);
convertView = holder.itemView;
convertView.setTag(holder);
}
mAdapter.onBindViewHolder((Holder) convertView.getTag(), position);
return convertView;
}
}
}