前面已经自定义好了view现在让这个定义的控件动起来,所以在这个继承了View的类中重新写了个方法,同时利用线程进行操作,在里面有一个while循环();小于400时会一直动,同时不断向主线程发handler进行修改这个,handler接收到了之后进行重绘调用这个方法invalidate();
Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); invalidate(); Log.e("msg","重绘了"); } };public void startMove() { new Thread(new Runnable() { @Override public void run() { while(x<400) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } x+=10; y+=10; handler.sendEmptyMessage(1); } //重绘,可以在ui线程被调用,自带handler } }).start(); }然后在在activty里面调用这个方法:public class DiyviewAcitity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_diyview_acitity); Myview myview=(Myview)findViewById(R.id.myview); myview.startMove(); } }这样一个控件就可以简单动起来了。
自定义view运动
最新推荐文章于 2022-03-15 12:14:28 发布