加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_潮州站长网 (http://www.0768zz.com/)- 物联安全、建站、操作系统、云计算、数据迁移!
当前位置: 首页 > 教程 > 正文

Android开发:ScrollView/HorizontalScrollView常用方法

发布时间:2021-11-25 16:45:49 所属栏目:教程 来源:互联网
导读:根据PHP编程网_黄冈站长网 Www.0713Zz.Com报道 ScrollView是ViewGroup的派生类,ViewGroup是View的派生类。 + 屏幕大小总是有限制的,对移动设备来说更是如此。当有很多内容需要显示的时候,一屏显示不完时,就需要使用滚动的方式。 + ScrollView只能包含一
 
根据PHP编程网_黄冈站长网 Www.0713Zz.Com报道

ScrollView是ViewGroup的派生类,ViewGroup是View的派生类。
 
+       屏幕大小总是有限制的,对移动设备来说更是如此。当有很多内容需要显示的时候,一屏显示不完时,就需要使用滚动的方式。
 
+       ScrollView只能包含一个直接子view,这是因为ScrollView是FrameLayout的派生类,通常情况下,这个直接子view是一个LinearLayout,在直接子view(比如LinearLayout)中,可以再包含其他对象。
 
+      ScrollView只支持垂直滚动。
 
+      HorizontalScrollView除只支持水平滚动外,其他都和ScrollView一样。
 
+      如果要屏幕支持垂直滚动和水平滚动,那么就要让HorizontalScrollView作为ScrollView的直接子view,或者让ScrollView作为HorizontalScrollView的直接子view。
 
1.    创建一个AndroidProject,修改main.xml,使之如下:
 
<?xml version="1.0" encoding="utf-8"?>
 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
 
    android:id="@+id/vsv"
 
    android:layout_width="fill_parent"
 
    android:layout_height="fill_parent"
 
    >
 
    <HorizontalScrollView
 
                android:id="@+id/hsv"
 
             android:layout_width="fill_parent"
 
             android:layout_height="fill_parent"
 
    >
 
                    <ImageView
 
                        android:layout_width="1280px"
 
                        android:layout_height="800px"
 
                        android:src="@drawable/desktop"
 
               />
 
    </HorizontalScrollView>
 
</ScrollView>
 
可以看到,在ScrollView里面嵌入了一个HorizontalScrollView,在HorizontalScrollView里面再嵌入了一个ImageView,ImageView用来显示一个1280x 800像素的大图片。
 
2.    将desktop.png拷贝到res/drawable-mdpi文件夹下。
 
3.    修改Activity所对应的Java代码,使之如下:
 
packagecom.pat.gui;
 
 
 
importandroid.app.Activity;
 
importandroid.os.Bundle;
 
importandroid.util.Log;
 
importandroid.view.MotionEvent;
 
importandroid.view.View;
 
importandroid.view.Window;
 
importandroid.view.WindowManager;
 
importandroid.view.View.OnTouchListener;
 
importandroid.widget.HorizontalScrollView;
 
importandroid.widget.ScrollView;
 
 
 
publicclass ControlScrollView extends Activity
 
implements
 
OnTouchListener
 
{
 
    private ScrollView vsv;
 
    private HorizontalScrollView hsv;
 
   
 
    @Override
 
    public void onCreate(BundlesavedInstanceState)
 
    {
 
        super.onCreate(savedInstanceState);
 
       
 
        // 去掉标题栏
 
        requestWindowFeature(Window.FEATURE_NO_TITLE);
 
        // 全屏显示
 
       this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
 
                                                           WindowManager.LayoutParams.FLAG_FULLSCREEN);
 
        setContentView(R.layout.main);
 
       
 
        vsv = (ScrollView)findViewById(R.id.vsv);
 
        hsv =(HorizontalScrollView)findViewById(R.id.hsv);
 
       
 
        vsv.setOnTouchListener(this);
 
        hsv.setOnTouchListener(this);
 
    }
 
 
 
         //@Override
 
         public boolean onTouch(View v,MotionEvent event)
 
         {
 
                   if(event.getAction() ==MotionEvent.ACTION_MOVE)
 
                   {
 
                            int x =(int)event.getX();
 
                            int y =(int)event.getY();
 
                           
 
                            Log.e("Coordinates= ", "(" + x + ", " + y + ")");
 
                   }
 
 
 
                   return false;
 
         }
 
}
 
 
 
运行结果如下:
 
 
可以在水平方向或者垂直方向滚动。对应的Logcat输出如下:
 
 
 
所输出的坐标就是鼠标(真机上的手指)开始接触屏幕时的坐标。
 
 
 
4.    说明:
 
a)     水平方向和垂直方向不能同时滚动。也就是说要么水平滚动,要么垂直滚动,而不能两个方向同时滚动。
 
b)     ImageView可以由其他View对象代替,比如LinearLayout,而在LinearLayout里面,可以放置其他的component,比如EditText、Button等等。

(编辑:我爱制作网_潮州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读