自定义控件三秒改变改变颜色

来源:互联网 发布:网络连通测试命令ping 编辑:程序博客网 时间:2024/04/30 03:52

//布局文件

<com.bw.u.liangweihangdiyizhouer.MyView    android:id="@+id/MyTextView"    android:layout_width="600dp"    android:layout_height="600dp"    android:layout_centerInParent="true"    />
//自定义控件的类

public class MyView extends TextView{    private Paint mPaint;    public MyView(Context context) {        this(context,null);    }    public MyView(Context context, AttributeSet attrs) {        this(context, attrs,R.style.AppTheme);    }    public MyView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        mPaint=new Paint();    }    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);    }    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        super.onMeasure(heightMeasureSpec,widthMeasureSpec);    }
//MainActivity的代码

public class MainActivity extends AppCompatActivity {    private boolean flag=true;    private MyView myView;    private int count=0;    private ArrayList<String> list=new ArrayList<>();    private Handler handler=new Handler(){        public void handleMessage(Message msg) {            if (msg.what==0){                myView.setText(list.get(count));                myView.setTextSize(50);                myView.setBackgroundColor(Color.parseColor(list.get(count)));                if (count<list.size()-1){                    count++;                }else {                    count=0;                }                handler.sendEmptyMessageDelayed(0, 2000);            }        }    };    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        myView = (MyView) findViewById(R.id.MyTextView);        list.add("#6187c5");        list.add("#00cc00");        list.add("#ffffff");        list.add("#666cc9");        list.add("#f00000");        list.add("#00ff00");        //从元素的第一个开始        myView.setText(list.get(count));        //开始给自定义赋值        myView.setBackgroundColor(Color.parseColor(list.get(count)));        //发送延迟消息       handler.sendEmptyMessageDelayed(0, 2000);        //点击监听        myView.setOnClickListener(new View.OnClickListener() {            public void onClick(View v) {            if (flag){                flag=false;                Toast.makeText(MainActivity.this,"关闭两秒改变事件",Toast.LENGTH_SHORT).show();                //移除发送的消息                handler.removeMessages(0);            }else {                flag=true;                count=0;                Toast.makeText(MainActivity.this,"开启两秒改变事件",Toast.LENGTH_SHORT).show();                handler.sendEmptyMessageDelayed(0,2000);               }            }        });    }}



0 0