public class VIEw1 extends VIEw {.... @OverrIDe public boolean ontouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN){ this.updateDrawings(); } return true; } @OverrIDe protected voID onDraw(Canvas canvas) { super.onDraw(canvas); if (canvas != null) { Log.i("Test","Draw VIEw1"); } } public voID updateDrawings() { try { this.invalIDate(); } finally { } }}
和VIEw2
public class VIEw2 extends VIEw {.... @OverrIDe protected voID onDraw(Canvas canvas) { super.onDraw(canvas); if (canvas != null) { Log.i("Test","Draw VIEw2"); } } public voID updateDrawings() { try { this.invalIDate(); } finally { } }}
FrameLayout上包装好的东西
<FrameLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:orIEntation="vertical" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:layout_weight="1" androID:background="#ffffff"> <linearLayout androID:orIEntation="horizontal" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:layout_weight="1"> <com.VIEw2 androID:layout_centerInParent="true" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:layout_marginBottom="5dip" /> </linearLayout> <linearLayout androID:orIEntation="horizontal" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:layout_weight="1"> <com.VIEw1 androID:layout_centerInParent="true" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:layout_marginBottom="5dip" /> </linearLayout></FrameLayout>
我的问题是:为什么当ontouch从VIEw1执行时,两个视图的onDraw()方法都会执行?为什么不只是VIEw1的?
稍后编辑VIEw2有一个要绘制的大图像,图像根据一些保存的首选项旋转和缩放.通常,当我启动Activity时,VIEw2.onDraw()负责旋转,转换和缩放Bitmap并在画布上绘制它.当用户触摸VIEw1时,我只想执行VIEw1.onDraw(),因为没有必要为每个用户交互反复重绘相同的背景图像.如何停止VIEw2.onDraw()执行?
解决方法 我认为这应该回答你的问题:http://developer.android.com/reference/android/view/ViewParent.html#requestLayout()
“当某些内容发生变化时调用,这会使该视图父项的子项布局无效.这将调度视图树的布局过程.”
总结以上是内存溢出为你收集整理的Android onDraw()在所有视图上执行?全部内容,希望文章能够帮你解决Android onDraw()在所有视图上执行?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)