繁体   English   中英

CustomView 未显示在 ScrollView 中

[英]CustomView not showing inside ScrollView

新的 Android 程序员在这里。

我正在尝试在 Android 上将 .png 图像显示为位图。 我能够显示转换后的图像的唯一方法是使用扩展View的自定义类。 但是,我的图像太大而无法完全显示在屏幕上,我希望能够滚动它。 但是当我定义一个ScrollView并将带有BitmapCanvas放入其中时,我得到了一个空白屏幕。 我没有运气用布局文件设置它,所以这一切都是在 Activity 类中完成的。

这是创建活动的地方:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ScrollView scroll = new ScrollView(this);
    scroll.addView(new CustomView(this));
    setContentView(scroll);
}

这是我的 CustomView 类:

private class CustomView extends View{

    public CustomView(Context context) {
        super(context);
    }

    @Override
    protected void onDraw(Canvas canvas){
        Bitmap bitmapMap = BitmapFactory.decodeResource(getResources(),R.drawable.resourceimage);
        canvas.drawBitmap(bitmapMap,0,0,null);
        this.setWillNotDraw(false);
    }
}

如果我将 Activity: setContentView(scroll)中的这行代码替换为这一行: setContentView(new CustomView(this)) ,我可以看到图像,尽管不是整个图像。 那么,有没有办法在布局文件中进行设置呢? 或者有什么我需要在ScrollView类中声明的东西吗?

编辑:我不想使用 ImageView,因为我想更改特定位置的图像,并且使用位图似乎是通过 x 和 y 坐标实现这一目标的最简单方法。

您的自定义视图需要覆盖onMeasure方法并正确设置测量的宽度和高度,以便父视图(在本例中为ScrollView )可以知道为子视图分配多少空间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM