ScrollView/HorizontalScrollView常用技巧,附源码

article/2025/9/25 2:34:06


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等等。


源码:下载



http://chatgpt.dhexx.cn/article/G9KumYi3.shtml

相关文章

Android 自定义 HorizontalScrollView 横向滑动效果

自从Gallery被谷歌废弃以后&#xff0c;Google推荐使用ViewPager和HorizontalScrollView来实现Gallery的效果。的确HorizontalScrollView可以实现Gallery的效果&#xff0c;但是HorizontalScrollView存在一个很大的问题&#xff0c;如果你仅是用来展示少量的图片&#xff0c;应…

Android ScrollView、NestedScrollView、Horizo​​ntalScrollView 等

在这篇文章中&#xff0c;我们想看看几个滚动视图的变体或子类以及它们是如何使用的。以下是我们迄今为止涵盖的变体&#xff1a; ScrollView - 超类 NestedScrollView - 子类 Horizo​​ntalScrollView - 子类 StickyScrollView - 子类和第三方库。 ParallaxScrollView - 子类…

Android横向滑动加载更多的控件的实现---HorizontalScrollSlideView

Android横向滑动加载更多的控件的实现—HorizontalScrollSlideView 需求 之前公司业务要求做一个横向滑动的&#xff0c;可以加载更多的控件&#xff0c;第一时间想到的就是 RecyclerView 来实现 &#xff0c;后面仔细想想滑动拦截不好控制等等 所以就换了个思路来实现了。思…

Android HorizontalScrollView 水平滑动 在listview上面动态添加图片

Android HorizontalScrollView 水平滑动 listview 上动态添加图片 最近遇到了个 在listview展示广告的需要动态添加图片 如图&#xff1a; 使用了 horizontalScrollView 在listview上进行添加 java代码&#xff1a; package com.baozi.bzhorizontalscrollview;impor…

HorizontalScrollView实现Gallery

从简便的方式&#xff0c;继承LinearLayout再布局了添加视图&#xff0c;使其左右滚动。 主界面Activity: package com.xmz.activity;import java.util.HashMap;import java.util.Map;import android.app.Activity;import android.os.Bundle;public class MainActivity extend…

Android中HorizontalScrollView的使用总结

HorizontalScrollView是Google推出的用来滚动查看视图的控件&#xff0c;已经替代了Gallery。 由于HorizontalScrollView继承自FrameLayout&#xff0c;这意味着你只能在它下面放置一个子控件&#xff0c;即在控件内部只能放一个字控件&#xff08;一般使用LinearLayout&#…

Android控件——HorizontalScrollView使用(一)

1. HorizontalScrollView简单使用 Gallery&#xff08;画廊&#xff09;是一个锁定中心条目并且拥有水平滚动列表的视图&#xff0c;一般用来浏览图片&#xff0c;并且可以响应事件显示信息&#xff1b;Gallery还可以和ImageSwitcher组件结合使用来实现一个通过缩略图来浏览图…

android HorizontalScrollView讲解

前言 本章内容是android.widget.HorizontalScrollView&#xff0c;译为"横向滚动条"&#xff0c;版本为Android 2.3 r1&#xff0c;翻译来自"Tina"&#xff0c;感谢"Tina"为大家带来精彩的翻译稿 &#xff01;期待你加入Android API 中文的翻译&…

Android中HorizontalScrollView的使用

由于移动设备物理显示空间一般有限&#xff0c;不可能一次性的把所有要显示的内容都显示在屏幕上。所以各大平台一般会提供一些可滚动的视图来向用户展示数据。Android平台框架中为我们提供了诸如ListView、GirdView、ScrollView等滚动视图控件&#xff0c;这几个视图控件也是我…

Android 自定义 HorizontalScrollView 打造再多图片(控件)也不怕 OOM 的横向滑动效果

转载请标明出处&#xff1a;http://blog.csdn.net/lmj623565791/article/details/38140505 自从Gallery被谷歌废弃以后&#xff0c;Google推荐使用ViewPager和HorizontalScrollView来实现Gallery的效果。的确HorizontalScrollView可以实现Gallery的效果&#xff0c;但是Horizo…

HorizontalScrollView入门技术

HorizontalScrollView是一个滚动视图,可以帮助我们实现菜单栏之类的方法,实现左滑动右滑动. 常用于做一些APP的导航条,那么我们如何进行实现呢? 首先肯定是声明布局,做一个示范: (这是在一个相对布局中做的 上面是我们的HorizontalScrollView,下面是一个可以滑动的ViewPager…

横向滑动视图HorizontalScrollView精炼详解

一、前期基础知识储备 由于移动设备物理显示空间一般有限&#xff0c;不可能一次性的把所有要显示的内容都显示在屏幕上。所以各大平台一般会提供一些可滚动的视图来向用户展示数据。Android平台框架中为我们提供了诸如ListView、GirdView、ScrollView、RecyclerView等滚动视图…

HorizontalScrollView 详解

2019独角兽企业重金招聘Python工程师标准>>> gallrey由于浪费内存问题被和谐了&#xff0c;现在一般都使用这个代替了或第三方库 类概述 用 于布局的容器&#xff0c;可以放置让用户使用滚动条查看的视图层次结构&#xff0c;允许视图结构比手机的屏幕大。Horizonta…

【Android控件】HorizontalScrollView的基础使用记录(滚动条自定义)

目录​​​​​​​ 效果图 简介 注意事项 基础属性 滚动条全部设置 滚动条是否总显示 自定义滚动条滑动背景和滚动条背景 设置滚动条的宽度 设置滚动条距离 其它常规设置 设置滚动速度 布局代码示例 总结 效果图 简介 HorizontalScrollView是水平滚动标签。垂直…

MySQL读写分离配置

介绍 MySQL主从复制是一个异步的复制过程&#xff0c;底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MySQL数据库(slave&#xff0c;即从库)从另 一台MySQL数据库(master&#xff0c;即主库)进行日志的复制然后再解析日志并应用到自身&#xff0c;最终实现从库的…

MySQL 读写分离配置实践

文章目录 一、环境准备1. 查看主从复制状态2. 查看JDK版本3. 打开root的远程连接权限4. 安装MyCat 二、配置文件1. server.xml2. schema.xml 三、启动服务1. 配置文件问题一2. 配置文件问题二 四、MyCat 9066端口和8066端口1. 9066管理端口2. 8066数据端口 五、验证读写分离1. …

mysql读写分离中间件有哪些

mysql中间件有哪些 mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡&#xff0c;读写分离&#xff0c;failover等&#xff0c;但其不支持大数据量的分库分表且性能较差。下面介绍几款能代替其的mysql开源中间件产品&#xff0c;Atlas&#xff0c;cobar&#xff0c;tdd…

配置mysql读写分离

准备起码三台服务器我这里准备了 192.168.0.63 mycat 192.168.0.64 主 192.168.0.65 从 如果是在多台 Linux 系统中组建的 MyCAT 集群&#xff0c;那需要在 MyCAT Server 所在的服务器上配置对 其他 IP 和主机名的映射&#xff0c;配置方式如下&#xff1a; vi /etc/h…

MySQL读写分离原理

文章目录 一、读写分离的概念二、引入中间件MyCat三、MyCat服务端口和管理端口 一、读写分离的概念 读写分离是基于主从复制来实现的。在实际的应用环境中&#xff0c;肯定是读操作多&#xff0c;就像我们在电商平台上去购买东西&#xff0c;可能看了100个也就买了一两个。所以…

Amoeba实现mysql读写分离

一、关于读写分离 amoeba : 英[ə’mi:bə] 读写分离&#xff08;Read/Write Splitting&#xff09;&#xff0c;基本的原理是让主数据库处理事务性增、改、删操作&#xff08;INSERT、UPDATE、DELETE&#xff09;&#xff0c;而从数据库处理SELECT查询操作。 数据库复制被用…