我正在处理的应用程序包含一个填充屏幕的大型自定义视图。我在自定义视图的每一侧的中心放置了一个按钮,可用于在该方向上移动绘制的对象。将自定义视图视为相机的“取景器”,我希望用户能够使用四边的按钮平移取景器。
按钮工作正常,但按下一个按钮时,下面的自定义视图会经过大量重绘(4次重绘而不是1次),并且用户界面相当滞后。
是否有某种方法可以阻止自定义视图因为按钮的动画而重绘?
如果我遗漏了一些明显的东西,请原谅我。
提前感谢任何帮助... Android摇滚!!!
XML布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.app.CustomView
android:id="@+id/CustomView" android:layout_above="@+id/menuButton" android:layout_height="fill_parent" android:layout_width="fill_parent"/>
<Button android:layout_height="wrap_content" android:layout_below="@+id/CustomView" android:layout_width="wrap_content" android:layout_alignRight="@+id/CustomView" android:id="@+id/toolsButton" android:text="Tools" android:textSize="24sp"></Button>
<Button android:layout_height="wrap_content" android:id="@+id/outButton" android:text="-" android:textSize="30sp" android:layout_toLeftOf="@+id/inButton" android:layout_alignTop="@+id/inButton" android:layout_width="40sp"></Button>
<Button android:layout_height="wrap_content" android:layout_alignRight="@+id/CustomView" android:layout_alignBottom="@+id/CustomView" android:text="+" android:textSize="30sp" android:id="@+id/inButton" android:layout_width="wrap_content"></Button>
<Button android:layout_alignTop="@+id/CustomView" android:layout_centerHorizontal="true" android:layout_height="40sp" android:layout_width="60sp" android:text="^" android:id="@+id/upButton"></Button>
<Button android:layout_alignBottom="@+id/CustomView" android:layout_centerHorizontal="true" android:text="v" android:layout_height="40sp" android:layout_width="60sp" android:id="@+id/downButton"></Button>
<Button android:layout_alignRight="@+id/CustomView" android:text=">" android:id="@+id/rightButton" android:layout_height="60sp" android:layout_width="40sp" android:layout_centerVertical="true"></Button>
<Button android:id="@+id/leftButton" android:text="<" android:layout_height="60sp" android:layout_width="40sp" android:layout_centerVertical="true"></Button>
<Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignLeft="@+id/CustomView" android:id="@+id/menuButton" android:textSize="24sp" android:text="Functions" android:layout_alignParentBottom="true"></Button>
</RelativeLayout>
答案 0 :(得分:0)
为什么按钮是自定义视图的一部分?为什么不将它们作为活动布局的一部分,以便布局包含所有按钮和自定义视图?
这可能无法完全解决您的问题,因为如果调用其onDraw
方法阻止UI线程,您可能需要进一步优化/重新思考自定义视图的实现方式。
答案 1 :(得分:0)
我发现实际上我的计算过于准确,而且我的Droid工作太难了。现在一切顺利。