У меня есть пользовательское представление, которое я помещаю в ScrollView следующим образом:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollview"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.test.view android:id="@+id/myview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</ScrollView>
Я реализовал onDraw () и многие другие методы в своем пользовательском представлении, также onMeasure:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(600, MeasureSpec.EXACTLY));
width = MeasureSpec.getSize(widthMeasureSpec);
height = MeasureSpec.getSize(heightMeasureSpec);
}
И затем, когда я запускаю приложение, я получаю много журналов от метода onDraw (), и TouchEvent нормально обрабатывается, но я не вижу Мое собственное представление.Кажется, он есть, но как будто он невидим ...
Может быть, я что-то упускаю ...?
Спасибо
ОБНОВЛЕНИЕ
В пользовательском представлении нет ничего особенного, просто представление, отображающее растровое изображение:
private class myView extends View{
public myView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.packagebm);
canvas.drawBitmap(bm, 0, 0, null);
Log.i("myview", "onDraw()");
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(300, MeasureSpec.EXACTLY));
}
}