【问题标题】:ScrollView and CustomView scrollingScrollView 和 CustomView 滚动
【发布时间】:2011-07-26 09:16:46
【问题描述】:

我有一个这样定义的 ScrollView:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/scrollv"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content">

       <com.test.myview android android:id="@+id/myview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</ScrollView>

MyView 是从 View 扩展而来的。

在 MyView 中,我绘制了一个比例为 1.5 的位图。似乎 scollview 工作正常,因为当我向上或向下滚动时会出现褪色边缘,但是在 onDraw() 中绘制的图像(如 drawBitmap(bm..))不会滚动以显示“隐藏”部分..它滚动2px然后停止..当它到达onScrollChanged(int,int,int,int)时-我知道那里的所有值都是0..我什至尝试使用scollTo或显式设置滚动scrollBy 方法,没有帮助。所以我想这是我弄错的内容......

我做错了吗?我使用的 CustomView 是基本视图,或多或少覆盖了一些常用方法(onMeasure、onDraw、onTouchEvent...)。

【问题讨论】:

    标签: java android scrollview


    【解决方案1】:

    您需要为自定义视图使用固定的宽度和高度。

    【讨论】:

    • 好的,我知道了,谢谢。但是现在当我缩放图像时,我想我需要重置滚动视图的大小,实际上是 myview 的父级,对吗?我该怎么做...?
    • 不,只是控制自定义视图的大小。 ScrollView 会自行处理。
    • 不,不是。在我缩放位图后,滚动视图的大小是初始大小,我只有几个像素可滚动(即,如果初始大小为 600x1400,在我缩放位图后,滚动视图的大小再次为 600x1400,我无法滚动位图)..
    • 对,但是自定义视图本身的大小会发生变化吗?
    • 缩放图像后 (canvas.scale()) 我调用 measure(getWidth()*scaleFactor, getHeight()*scaleFactor) 并进入 onMeasure 我调用 setMeasuredDimensions(w,h)但是再一次,在那之后,我的视图大小又和以前一样了......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多