APP学习7(自定义view)
1. 自定义view
当系统控件不能满足需求是,需要自定义控件。
自定义View常用的3个方法:
onMeasure()方法:测量尺寸。
onDraw()方法:绘制图像。
onLayout()方法:指定布局中控件的位置。
代码及使用:
额外建立一个类
Circle.java
package com.example.myapp; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View; import androidx.annotation.Nullable; public class Circle extends View { public Circle(Context context) { super(context); } public Circle(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public Circle(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public Circle(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); int r=50; int centerX = getLeft()+r; int centerY = getTop()+r; Paint p=new Paint(); p.setColor(Color.BLUE); canvas.drawCircle(centerX,centerY,r,p); } }
xml文件中使用:
<com.example.myapp.Circle android:layout_width="200dp" android:layout_height="200dp"> </com.example.myapp.Circle>
这里注意,如果xml使用的时候这样子写回直接覆盖到后面的内容。
<com.example.myapp.Circle android:layout_width="wrap_content" android:layout_height="wrap_content"> </com.example.myapp.Circle>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!