package com.pdj.bw.moni.view; import android.content.Context; import android.graphics.Color; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; /** * author:Created by WangZhiQiang on 2018/5/29. */ public class MyView extends ViewGroup { private int h; private int w; private int width; private int height; public MyView(Context context) { this(context,null); } public MyView(Context context, AttributeSet attrs) { this(context, attrs,0); } public MyView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initview(); } private void initview() { } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); measureChildren(widthMeasureSpec,heightMeasureSpec); h = this.getHeight(); w = this.getWidth(); } @Override protected void onLayout(boolean b, int i, int i1, int i2, int i3) { //拿到子控件的个数 int childCount = getChildCount(); width = w / 3; height = 80; int h1=300; int wi=0; int he=400; //定义一个临时高度 int startHeight=0; int startWidth=0; //循环遍历出每一个View for(int a=0;a<childCount;a++){ final TextView v = (TextView) getChildAt(a); v.setText(a+1+""); v.setTextSize(30); if(a%3==0){ v.setBackgroundColor(Color.RED); }else if(a%3==1){ v.setBackgroundColor(Color.GREEN); }else if(a%3==2){ v.setBackgroundColor(Color.BLUE); } v.layout(startWidth,startHeight,startWidth+ width,startHeight+height); if(startWidth>width){ startWidth=0; startHeight+=height; }else { startWidth+=width; startHeight+=height; } //点击 v.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(mOnClickListener!=null){ mOnClickListener.onclcik(v.getText().toString()); } } }); //长按 v.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { if(mOnLongClickListener!=null){ mOnLongClickListener.onLongclcik(view); } return true; } }); } } //点击接口 public interface OnClickListener{ void onclcik(String value); } private OnClickListener mOnClickListener; public void setOnClickListener(OnClickListener onClickListener){ mOnClickListener=onClickListener; } //长按接口 public interface OnLongClickListener{ void onLongclcik(View view); } private OnLongClickListener mOnLongClickListener; public void setOnLongClickListener(OnLongClickListener onLongClickListener){ mOnLongClickListener=onLongClickListener; } }
MyView
最新推荐文章于 2020-05-20 21:44:59 发布