当硬件加速为真和假时,绘图模型的区别是什么?

时间:2014-05-22 06:47:24

标签: android hardware-acceleration

我有自定义的LinearLayout和自定义TextView,TextView位于中心。看到xml布局:

<com.example.androidtest.MyLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffff0000"
tools:context="com.example.androidtest.MainActivity"
tools:ignore="MergeRootFrame" >

<com.example.androidtest.MyTextView 
    android:id="@+id/test"
    android:text="abc"
    android:layout_gravity="center"
    android:background="#4400ff00"
    android:clickable="true"
    android:layout_width="100px"
    android:layout_height="100px"
    />

</com.example.androidtest.MyLinearLayout>

我在两个类中重写onDraw方法,并在MyTextView中添加一个类似&#34; onDraw的日志输出,名为&#34;。 我在TextView上设置onClickListener,我在其中调用invalidate()

    tv=(MyTextView)findViewById(R.id.test);
    tv.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
                    System.out.println("onClick");
            tv.invalidate();
        }
    });

示例1:硬件加速: true / false ,TextView背景颜色: 0xff00ff00 结果:...-&gt; onClick-&gt; MyTextView中的onDraw .. < / p>

(请注意,背景颜色现在变为半透明)

示例2:硬件加速:错误,TextView背景颜色: 0x4400ff00 结果:... - &gt; onClick-&gt; onLraw in MyLinearLayout - &gt; MyTextView中的onDraw ..

示例3:硬件加速: true ,TextView背景颜色: 0x4400ff00 结果:... - &gt; onTime-&gt; MyTextView中的onDraw ..

问题1:document表示在软渲染管道中,视图层次中与脏区域相交的任何视图也将被重绘。因此,根据示例1,它是否已经优化?

问题2:在示例3中,为什么MyLinearLayout中的onDraw方法没有被调用?怎么会这样?是不是需要首先绘制父项,然后使用TextView进行alpha混合?

0 个答案:

没有答案