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等等。 ![]() (编辑:我爱制作网_潮州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |