三
来源:互联网 发布:培训班 知乎 编辑:程序博客网 时间:2024/06/02 09:00
private List<GoodsBean.DataBean> list = new ArrayList<>();
private Context context;
private LayoutInflater inflater;
private final int ZERO_TYPE = 0,ONE_TYPE = 1,TEO_TYPE = 2;
public MyAdapter(Context context) {
this.context = context;
inflater = LayoutInflater.from(context);
}
public void addData(List<GoodsBean.DataBean> data){
this.list.addAll(data);
notifyDataSetChanged();
}
public void updateData(List<GoodsBean.DataBean> data){
this.list.clear();
addData(data);
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
final ViewHolder1 holder1;
final ViewHolder2 holder2;
final ViewHolder3 holder3;
if (viewType == ZERO_TYPE) {
final View view = inflater.inflate(R.layout.goods_item, parent, false);
holder2 = new ViewHolder2(view);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setRecyclerViewListener.setRecyclerViewListener(view,holder2.getLayoutPosition());
}
});
return holder2;
}else if (viewType == ONE_TYPE){
final View view = inflater.inflate(R.layout.recycler_item1, parent, false);
holder1 = new ViewHolder1(view);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setRecyclerViewListener.setRecyclerViewListener(view,holder1.getLayoutPosition());
}
});
return holder1;
}
final View view = inflater.inflate(R.layout.recycler_item2, parent, false);
holder3 = new ViewHolder3(view);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setRecyclerViewListener.setRecyclerViewListener(view,holder3.getLayoutPosition());
}
});
return holder3;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
GoodsBean.DataBean bean = list.get(position);
String[] split = bean.images.split("\\|");
if (holder instanceof ViewHolder2){
Glide.with(context).load(split[0]).into(((ViewHolder2) holder).imageView);
((ViewHolder2) holder).textView.setText(bean.subhead);
}
if (holder instanceof ViewHolder1){
((ViewHolder1) holder).textView.setText(bean.title);
}
if (holder instanceof ViewHolder3){
Glide.with(context).load(split[0]).into(((ViewHolder3) holder).img1);
Glide.with(context).load(split[1]).into(((ViewHolder3) holder).img2);
Glide.with(context).load(split[2]).into(((ViewHolder3) holder).img3);
Glide.with(context).load(split[0]).into(((ViewHolder3) holder).img4);
}
}
@Override
public int getItemCount() {
return list==null?0:list.size();
}
@Override
public int getItemViewType(int position) {
if (list.get(position).itemtype == ONE_TYPE){
return ONE_TYPE;
}else if (list.get(position).itemtype == ZERO_TYPE){
return ZERO_TYPE;
}
return TEO_TYPE;
}
public class ViewHolder1 extends RecyclerView.ViewHolder{
public TextView textView;
public ViewHolder1(View itemView) {
super(itemView);
textView = (TextView)itemView.findViewById(R.id.one_text);
}
}
public class ViewHolder2 extends RecyclerView.ViewHolder{
public TextView textView;
public ImageView imageView;
public ViewHolder2(View itemView) {
super(itemView);
textView = (TextView)itemView.findViewById(R.id.zero_text);
imageView = (ImageView)itemView.findViewById(R.id.zero_img);
}
}
public class ViewHolder3 extends RecyclerView.ViewHolder{
public ImageView img1,img2,img3,img4;
public ViewHolder3(View itemView) {
super(itemView);
img1 = (ImageView)itemView.findViewById(R.id.two_img1);
img2 = (ImageView)itemView.findViewById(R.id.two_img2);
img3 = (ImageView)itemView.findViewById(R.id.two_img3);
img4 = (ImageView)itemView.findViewById(R.id.two_img4);
}
}
private SetRecyclerViewListener setRecyclerViewListener;
public void setListener(SetRecyclerViewListener setRecyclerViewListener){
this.setRecyclerViewListener = setRecyclerViewListener;
}
public interface SetRecyclerViewListener{
void setRecyclerViewListener(View view,int position);
}
}
public class GoodsContract {
public interface IGoodView{
void setData(List<GoodsBean.DataBean> data);
}
public interface IGoodModel{
void getDataByNet(IGoodView view);
}
public interface IGoodPresenter{
void showData();
}
}
public class ProgressBarView extends View {
private Paint paint;
private int currentX = 100;
private int currentY = 100;
private int count;
private PointF pointF = new PointF(currentX,currentY);
private int mProgress;
public ProgressBarView(Context context) {
super(context);
initpaint(context);
}
private void initpaint(Context context) {
paint = new Paint();
paint.setAntiAlias(true);
paint.setStyle(Paint.Style.STROKE);
}
public ProgressBarView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
initpaint(context);
}
public ProgressBarView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initpaint(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
paint.setStrokeWidth(0);
paint.setColor(Color.BLACK);
canvas.drawCircle(pointF.x,pointF.y,20,paint);
canvas.drawCircle(pointF.x,pointF.y,30,paint);
paint.setStrokeWidth(10);
paint.setColor(Color.RED);
RectF recyF = new RectF(75,75,125,125);
canvas.drawArc(recyF,-90,mProgress,false,paint);
paint.setStrokeWidth(1);
paint.setColor(Color.BLUE);
canvas.drawText(count+"",98,102,paint);
}
public void setProgress(int progress){
this.mProgress = progress;
if (mProgress == 120){
count = 2;
}
if (mProgress == 240){
count = 1;
}
if (mProgress == 360){
count = 0;
}
invalidate();
}
}
public class GoodsModel implements GoodsContract.IGoodModel {
private String url = "http://120.27.23.105/product/getProducts?pscid=1";
private Handler handler = new Handler();
@Override
public void getDataByNet(final GoodsContract.IGoodView view) {
// OkHttp3Utils.doGet(url, new Callback() {
// @Override
// public void onFailure(Call call, IOException e) {
//
// }
//
// @Override
// public void onResponse(Call call, Response response) throws IOException {
// final String string = response.body().string();
// handler.post(new Runnable() {
// @Override
// public void run() {
// GoodsBean bean = GoodsBean.objectFromData(string);
// view.setData(bean.data);
// }
// });
// }
// });
OkHttp3Utils.doGet(url, new GsonObjectCallback<GoodsBean>() {
@Override
public void onUi(GoodsBean goodsBean) {
view.setData(goodsBean.data);
}
@Override
public void onFailed(Call call, IOException e) {
}
});
}
}
public class GoodPresenter implements GoodsContract.IGoodPresenter {
private GoodsContract.IGoodView view;
private GoodsModel model;
public GoodPresenter(GoodsContract.IGoodView view) {
this.view = view;
model = new GoodsModel();
}
@Override
public void showData() {
model.getDataByNet(view);
}
}
public class MainActivity extends AppCompatActivity {
private ProgressBarView pbv;
private int progress = 120;
private int time = 3;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
time--;
if (time == 0){
startActivity(new Intent(MainActivity.this,HomeActivity.class));
finish();
}else {
progress += 120;
pbv.setProgress(progress);
handler.sendEmptyMessageDelayed(0,1000);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView imageView = (ImageView)findViewById(R.id.logo_img);
pbv = (ProgressBarView)findViewById(R.id.my_progess);
setAnimation(imageView);
handler.sendEmptyMessage(0);
pbv.setProgress(progress);
}
private void setAnimation(ImageView imageView) {
ObjectAnimator trans = ObjectAnimator.ofFloat(imageView,"translationY",0f,300f).setDuration(1000);
ObjectAnimator scalX = ObjectAnimator.ofFloat(imageView,"scaleX",1f,2f,1f).setDuration(1000);
ObjectAnimator scalY = ObjectAnimator.ofFloat(imageView,"scaleY",1f,2f,1f).setDuration(1000);
AnimatorSet setAnimatior = new AnimatorSet();
setAnimatior.play(trans).before(scalX).before(scalY);
setAnimatior.start();
}
}
public class HomeActivity extends AppCompatActivity implements GoodsContract.IGoodView{
private RecyclerView recyclerView;
private GoodPresenter presenter;
private MyAdapter adapter;
private SpringView springView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
presenter = new GoodPresenter(this);
recyclerView = (RecyclerView)findViewById(R.id.my_recycler);
LinearLayoutManager manager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(manager);
adapter = new MyAdapter(this);
recyclerView.setAdapter(adapter);
springView = (SpringView)findViewById(R.id.my_springview);
springView.setHeader(new DefaultHeader(this));
springView.setFooter(new DefaultFooter(this));
presenter.showData();
}
@Override
public void setData(final List<GoodsBean.DataBean> data) {
adapter.addData(data);
springView.onFinishFreshAndLoad();
//点击事件
adapter.setListener(new MyAdapter.SetRecyclerViewListener() {
@Override
public void setRecyclerViewListener(View view, int position) {
GoodsBean.DataBean bean = data.get(position);
Intent intent = new Intent(HomeActivity.this,DeatilsActivity.class);
intent.putExtra("name",bean.title);
startActivity(intent);
}
});
//上拉刷新,下拉加载
springView.setListener(new SpringView.OnFreshListener() {
@Override
public void onRefresh() {
adapter.updateData(data);
springView.onFinishFreshAndLoad();
}
@Override
public void onLoadmore() {
adapter.addData(data);
springView.onFinishFreshAndLoad();
}
});
}
}
- (三)
- (三)
- 三
- 三
- 三
- 三
- 三
- 三
- 三
- 三
- “三”
- 三
- 三
- 神经网络三之三
- 三周任务三
- 三三法则
- 学做三件事、三句话、三乐、三不要
- 三观 - 三观 - 三观
- kafka0.8消息处理逻辑
- tomcat运行时出现了Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]等错误
- CodeForces
- Android中Activity的进入退出动画
- AngularJS 查询、全选、反选、全部删除、批量删除、添加、修改
- 三
- Binlog详解
- Banner自动轮播
- maven No plugin found for prefix 'war
- 文章标题 HDU 5977 : Garden of Eden (树分治)
- 欢迎使用CSDN-markdown编辑器
- Hbase架构体系与设计模型
- SDUT-1272 面向对象程序设计上机练习十(运算符重载)
- myeclipse maven项目没有maven depencies