我在我的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);
}
}
当我运行代码时,没有显示任何内容。有什么想法吗?
答案 0 :(得分:1)
尝试为视图的宽度和高度设置一些固定数字 - 即300x200。很有可能因为你将宽度和高度设置为wrap_content并且你的视图基本上没有内容(没有添加任何内容),你在onDraw中获得的画布是空的。