大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Android怎么自定义view组件?这篇文章运用了实例代码展示,代码非常详细,可供感兴趣的小伙伴们参考借鉴,希望对大家有所帮助。
目前成都创新互联已为1000多家的企业提供了网站建设、域名、网络空间、网站托管、服务器租用、企业网站设计、福绵网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
Android中的组件类似于swxing中的Panel,它只是一片空白区域,对于UI组件来说,只是在其中绘制外观。
开发者可以继承view,自定义自己的组件,然后重写其中的方法:
构造器:当java创建或者xml创建组件时调用
下面通过一个例子,该例子设计一个组件,在手触摸的地方绘制一个圆形:
新建java类,添加如下代码:
package com.example.tupianliulanqi; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.MotionEvent; import android.view.View; public class MyView extends View { private Paint p = new Paint(); private float myX = 0; private float myY = 0; public MyView(Context context) { super(context); // TODO Auto-generated constructor stub } //用于重新绘制组件 public void onDraw(Canvas canvas) { super.onDraw(canvas); //设置画笔属性 p.setColor(Color.RED); canvas.drawCircle(myX, myY, 15, p); } //触摸事件发生时调用 public boolean onTouchEvent(MotionEvent event) { myX = event.getX(); myY = event.getY(); //告诉需要重新绘制组件 this.invalidate(); return true; } }
在Activity中添加:
public class MainActivity extends Activity { MyView myview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); LinearLayout layout = (LinearLayout)this.findViewById(R.id.main); myview = new MyView(this);; layout.addView(myview); }
以上就是Android自定义view组件的详细内容,代码示例简单明了,如果在日常工作遇到此问题。通过这篇文章,希望你能有所收获,更多详情敬请关注创新互联行业资讯频道!