扫码关注官方订阅号
我想把一个Framelayout绘制在屏幕的某个位置,并用Rect来确定其位置,请问在ondraw()里面应该怎么操作?我找不到什么函数可以绘制一个view。
光阴似箭催人老,日月如移越少年。
onDraw(Canvas canvas) 是用来绘制自定义view的,而 FrameLayout 是 android 的布局控件,canvas 并不具备绘制 FrameLayout 的 API,你可以从canvas的文档里查阅所有API:http://developer.android.com/reference/android/graphics/Canvas.html
onDraw(Canvas canvas)
如果你是想自定义一个FrameLayout,可以这样做:
public class YourFrameLayout extends FrameLayout{ Paint mPaint; public YourFrameLayout(Context context, AttributeSet attrs) { super(context, attrs); } public YourFrameLayout(Context context) { super(context); // Paint类决定如何进行绘制操作。 // 其方法可指定绘制图形的特征,例如是否填充图形、使用什么字体绘制、线条是什么颜色等。 mPaint = new Paint(); mPaint.setColor(0x22ff0000); } protected void onDraw(Canvas canvas) { super.onDraw(canvas); // Canvas类具有我们需要的所有绘制操作。 // 其方法可决定绘制的位置及图形,例如线条、圆形、字词、矩形等 canvas.drawRect(left, top, right, bottom, mPaint); ...... } }
如果你是想把一个Framelayout绘制在屏幕的某个位置,就应该用layout文件;或者通过代码new一个Framelayout,然后通过LayoutParams设置它的宽度和高度,再通过View.setX(float x)和setY()设置坐标。
View.setX(float x)
setY()
确定位置这事为什么不让 onLayout 来做呢?
onLayout
继承一个布局比如FrameLayout 然后在onLayout里控制位置
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
onDraw(Canvas canvas)
是用来绘制自定义view的,而 FrameLayout 是 android 的布局控件,canvas 并不具备绘制 FrameLayout 的 API,你可以从canvas的文档里查阅所有API:http://developer.android.com/reference/android/graphics/Canvas.html
如果你是想自定义一个FrameLayout,可以这样做:
如果你是想把一个Framelayout绘制在屏幕的某个位置,就应该用layout文件;
或者通过代码new一个Framelayout,然后通过LayoutParams设置它的宽度和高度,再通过
View.setX(float x)
和setY()
设置坐标。确定位置这事为什么不让
onLayout
来做呢?继承一个布局比如FrameLayout 然后在onLayout里控制位置