android可滚动页面的XML代码

时间:2014-03-30 23:47:30

标签: android

尝试使用可滚动图像时出现此错误。

Exception raised during rendering: com.android.layoutlib.bridge.MockView cannot be cast to android.view.ViewGroup
Exception details are logged in Window > Show View > Error Log
The following classes could not be found:
- com.scrollable.view.HScroll (Fix Build Path, Edit XML, Create Class)
- com.scrollable.view.VScroll (Fix Build Path, Edit XML, Create Class)

下面是三个用于我的可滚动图像的类和它的xml代码,我从另一个线程得到了这个,但我似乎无法让它工作。我是这个社区的新手,所以我所能提供的并不多。这可能是一个愚蠢的问题,但一些帮助将非常感激。

public class VScroll extends ScrollView {
    public VScroll(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public VScroll(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

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

    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        return false;
    }
}


public class HScroll extends HorizontalScrollView {

    public HScroll(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public HScroll(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

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

    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        return false;
    }
}


public class ScrollableImageActivity extends Activity {

    private float mx, my;
    private float curX, curY;

    private ScrollView vScroll;
    private HorizontalScrollView hScroll;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_map_page);

        vScroll = (ScrollView) findViewById(R.id.scrollView1);
        hScroll = (HorizontalScrollView) findViewById(R.id.horizontalScrollView1);

    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        float curX, curY;

        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                mx = event.getX();
                my = event.getY();
                break;
            case MotionEvent.ACTION_MOVE:
                curX = event.getX();
                curY = event.getY();
                vScroll.scrollBy((int) (mx - curX), (int) (my - curY));
                hScroll.scrollBy((int) (mx - curX), (int) (my - curY));
                mx = curX;
                my = curY;
                break;
            case MotionEvent.ACTION_UP:
                curX = event.getX();
                curY = event.getY();
                vScroll.scrollBy((int) (mx - curX), (int) (my - curY));
                hScroll.scrollBy((int) (mx - curX), (int) (my - curY));
                break;
        }
        return true;
    }
}


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    xmlns:android1="http://schemas.android.com/apk/res/android">

    <com.scrollable.view.VScroll 
        android:layout_height="fill_parent"
        android:layout_width="fill_parent" 
        android:id="@+id/vScroll">
        <com.scrollable.view.HScroll 
            android:id="@+id/hScroll"
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent">
            <ImageView 
                android:layout_width="fill_parent" 
                android:layout_height="fill_parent" 
                android:src="@drawable/skytrain_map">
            </ImageView>
        </com.scrollable.view.HScroll>
    </com.scrollable.view.VScroll>

</LinearLayout>

0 个答案:

没有答案