【发布时间】:2013-01-20 09:56:55
【问题描述】:
我创建了一个带有线程的自定义表面视图类,并在我的主要活动中添加了自定义表面视图,并在一个相对布局内。现在我在自定义表面视图类构造函数中声明一个位图。
public static Bitmap mbitmap;
public Surface(Context ctx, AttributeSet attrSet) {
super(ctx, attrSet);
context = ctx;
mbitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.abc);
SurfaceHolder holder = getHolder();
holder.addCallback(this);
}
我已经在画布上绘制了它
public void doDraw(Canvas canvas) {
canvas.drawBitmap(mbitmap, 0, 0, null);
}
我得到了成功的绘图。但它占据了整个屏幕
<RelativeLayout
android:id="@+id/outer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.cg.Surface
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RelativeLayout
android:id="@+id/processing_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</RelativeLayout>
</RelativeLayout>
即使我使用 Wrap_Content 作为高度和宽度,我还是在后面绘制了整个屏幕。如何单独绘制适当大小的位图图像?自定义表面视图类中的这种覆盖方法是否可能:
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height)
{ }
如果没有如何在其中使用 setMeasuredDimension 并限制位图中的表面视图大小?
【问题讨论】:
标签: android bitmap surfaceview