绘制自定义视图,然后添加到xml

时间:2011-12-05 20:36:48

标签: android xml view

我在我的xml文件中有LinearLayout,我正在尝试添加自定义视图。这是我的xml代码:

        <LinearLayout android:id="@+id/amenitycontent"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@color/background_color">

            <com.mypackage.util.AmentiesView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

        </LinearLayout>

此代码位于TabHost内部(不确定这是否有所不同)。

这是我的自定义视图:

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

public class AmentiesView extends View{

Bitmap image;
String title;
private final Paint paint = new Paint();

public AmentiesView(Context context) {
    super(context);
    image = BitmapFactory.decodeResource(getResources(), R.drawable.checkcircle);

}
public AmentiesView(Context context, AttributeSet attrs) {
    super(context, attrs);
    image = BitmapFactory.decodeResource(getResources(), R.drawable.checkcircle);

}

public void setTitle(String _title){
    title = _title;
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    canvas.drawBitmap(image, 0, 0, paint);
    canvas.drawText(title, image.getWidth() + 10, 0, paint);
    canvas.drawColor(Color.RED);
}


}

当我运行代码时,没有显示任何内容。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

尝试为视图的宽度和高度设置一些固定数字 - 即300x200。很有可能因为你将宽度和高度设置为wrap_content并且你的视图基本上没有内容(没有添加任何内容),你在onDraw中获得的画布是空的。