草庐IT

android - 为什么 canvas 和 onDraw 中的 view 大小不一样? (安卓)

我试过这个@OverrideprotectedvoidonDraw(Canvascanvas){Log.e("TEST","canvaswidth:"+canvas.getWidth()+"");Log.e("TEST","viewwidth:"+this.getWidth()+"");Log.e("TEST","canvasheight:"+canvas.getHeight()+"");Log.e("TEST","viewheight:"+this.getHeight()+"");super.onDraw(canvas);Log.e("TEST","canvaswidth:"+can

android - 如何在 canvas android 的 onDraw() 方法中快速绘制位图

我正在尝试在android中通过单击方法绘制标记。当我绘制标记时,它会绘制,但绘制需要更多时间,即30-40毫秒,有时需要2-3秒。这是我在其中具有绘制方法的类的代码。publicclassMyItemizedOverlayextendsItemizedOverlay{privateArrayListoverlayItemList=newArrayList();publicMyItemizedOverlay(DrawablepDefaultMarker,ResourceProxypResourceProxy){super(pDefaultMarker,pResourceProxy);}

android - 覆盖 onDraw() 或 draw()?

我的项目是基于surfaceView的,到目前为止,我已经在onDraw中进行了所有渲染,我将其覆盖。一切似乎都很好。但是,我刚刚更新了我的SDK,现在它给了我一个错误告诉我:Suspiciousmethodcall;shouldprobablycall"draw"ratherthan"onDraw"谁能解释一下这两者的区别?我在网上阅读了一些类似的问题,但没有找到我理解的解释。谢谢 最佳答案 我尝试清理我的项目,它确实解决了问题。试试看。 关于android-覆盖onDraw()或dr

android - 如何在 onDraw 方法之外获取自定义 View 的 Canvas 大小?

我需要能够访问ViewCanvas的大小来执行一些计算。由于某种原因,传递给onSizeChanged的View大小与传递给onDraw的Canvas大小不同。我当前的解决方法使用bool标志来确定何时需要进行计算。理想的解决方案将允许我在onSizeChanged方法中进行这些计算,所以我想知道......有什么方法可以让我获得CanvasonDraw方法之外的对象(或至少是它的尺寸)?我的代码如下。它以给定角度绘制圆的半径。当我使用canvas.centerX()来确定半径的起点和终点时,一切正常。如果我使用传递给onSizeChanged的参数,它甚至远未接近正确。@Overri

android - 扩展的 SurfaceView 的 onDraw() 方法从未被调用

我正在尝试修改用于进行相机预览的SurfaceView,以显示重叠的正方形。但是,从不调用扩展SurfaceView的onDraw方法。这里是来源:publicclassCameraPreviewViewextendsSurfaceView{protectedfinalPaintrectanglePaint=newPaint();publicCameraPreviewView(Contextcontext,AttributeSetattrs){super(context,attrs);rectanglePaint.setARGB(255,200,0,0);rectanglePaint.

android - 未调用自定义 onDraw() 方法

-->publicclassMyDrawableViewextendsView{ContextthisContext;publicMyDrawableView(Contextcontext,AttributeSetattr){super(context);thisContext=context;}@OverrideprotectedvoidonDraw(Canvascanvas){super.onDraw(canvas);finalPaintpaint=newPaint();paint.setColor(Color.BLUE);paint.setTextSize(12);canvas.

Android 自定义布局 - onDraw() 永远不会被调用

publicclassMainActivityextendsActivity{@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);TableViewtv=newTableView(this);tv.setLayoutParams(newLayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));setContentView(tv);}@OverridepublicbooleanonCrea

android - 使用 LinearLayout 的自定义小部件没有得到 onDraw()

我正在通过扩展LinearLayout创建一个自定义小部件:publicclassMyWidgetextendsLinearLayout{privatestaticPaintPAINT=newPaint(Paint.ANTI_ALIAS_FLAG);static{PAINT.setColor(Color.RED);}publicMyWidget(Contextcontext){this(context,null);}publicMyWidget(Contextcontext,AttributeSetattrs){super(context,attrs);}@Overrideprotec

android - 为什么在 invalidate() 之后不调用 onDraw?

我在stackoverflow上找到了很多帖子,但我仍然无法解决我的问题。这是我的代码fragment:publicclassMyViewextendsRelativeLayout{Buttonb1;Buttonb2;ContextsContext;publicstaticinti=0;privateintw=400;privateinth=400;privateintw2=100;privateinth2=100;publicMyView(Contextcontext){super(context);sContext=context;init();}publicMyView(Cont

android - 自己定义的 Layout , onDraw() 方法没有被调用

我这样定义了一个类:publicclassTestMyFrameLayoutextendsFrameLayout{PaintmPaint;publicTestMyFrameLayout(Contextcontext,AttributeSetattrs){super(context,attrs);}publicTestMyFrameLayout(Contextcontext){super(context);mPaint=newPaint();mPaint.setColor(Color.GREEN);}protectedvoidonDraw(Canvascanvas){super.onDr