我使用存储在DC内存中的位图将其复制到窗口DC中并使用BitBlt
正确显示在屏幕上。
但是现在位图图像已经在第一次复制了。第二次如何显示存储在窗口DC位图中的图像,但不能再将其从内存直流复制到窗口直流。
答案 0 :(得分:2)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="64dp"
android:padding="12dp" >
<ImageView
android:src="@mipmap/ic_launcher"
android:id="@+id/myimage"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_marginRight="10dp" />
<TextView
android:textSize="12dp"
android:textColor="#000"
android:text="Testing"
android:id="@+id/mytitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/myimage"
/>
</RelativeLayout>
不是慢功能。自20世纪90年代初以来,它一直受到显卡的大幅加速,而且它在操作系统中被称为全部。在blitting中没有观察到性能问题。
因此,正确的做法是致电BitBlt
以回复您的窗口BitBlt
消息。您将从存储器DC(加载位图的位置)blit到窗口的DC上。这将&#34;画&#34;窗口上的位图。
这里昂贵的操作是创建内存DC并加载位图。如果你想优化位图的显示,那么做一次这些事情(例如,当创建&#34; viewer&#34;窗口时)并缓存内存DC,重新使用它每次你需要重绘窗口。这样,你唯一能做的就是从一个DC到另一个DC,正如我上面所说,它非常快。