如何在android中制作水平滚动视图

2024-04-12

我想做这种水平滚动,看图片

enter image description here >>>>............................................enter image description here

XML 文件保存在 res/layout/main.xml:我的 main.xml 文件有错误吗?我想用 .

   <?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">
<ImageView  android:id="@+id/imageView1"
    android:layout_width="wrap_content" android:layout_height="200dp">    </ImageView>
   <TextView android:text="Zoo"
    android:id="@+id/PicDescription" android:layout_width="wrap_content"
    android:textSize="40sp" android:layout_height="wrap_content"
    android:layout_gravity="center" android:layout_marginTop="10dp"></TextView>
  <TextView android:text="Z" android:id="@+id/captitalText"
    android:layout_height="wrap_content" android:layout_gravity="center"    android:textSize="100sp"
    android:layout_width="wrap_content" android:layout_marginTop="25dp"></TextView>

XML 文件保存在 res/values/letters.xml:

<?xml version="1.0" encoding="utf-8"?>
resources>
  <string-array name="desc">
    <item>Apple</item>
    <item>Ball</item>
    ...
    <item>Zoo</item>
 </string-array>

 <string-array name="capitalLetter">
    <item>A</item>
    <item>B</item>
    ...
    <item>Z</item>
  </string-array>

android中水平滚动动作的代码是什么?请给我建议,我是安卓新手,我对滚动完全感到困惑。我遵循这个link1 https://stackoverflow.com/questions/5102993/swipe-fling-tab-changing-in-conjunction-with-scrollview link2 https://stackoverflow.com/questions/3171452/scrollview-and-gallery-interfering但无法得到任何想法。 预先感谢您并希望您能解决这个问题。

编辑:9 月 11 日

这是我的代码。当我尝试滚动然后更改 B 时,当完成滚动页面时,A 再次变为。我想,我在滚动完成起始值时调用,对吗?

给我建议我可以做什么来修复此代码。

  public class Test extends Activity {
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
private GestureDetector gestureDetector;
String[] big;
TextView txtbig;
int count=0;

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

    big = getResources().getStringArray(R.array.capitalLetter);

    gestureDetector = new GestureDetector(new MyGestureDetector());
    View mainview = (View) findViewById(R.id.mainView);

    mainview.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            if (gestureDetector.onTouchEvent(event)) {
                textChange();
                return true;
            }
            return false;
        }
    });
    //textChange();
}
private void textChange() {
    txtbig = (TextView) findViewById(R.id.bigText);
    String bigTextString=big[count];
    txtbig.setText(bigTextString);

    count++;

    if(count==big.length)
    {
    count=0;
    }
}
class MyGestureDetector extends SimpleOnGestureListener {
    @Override

    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
            float velocityY) {

        Intent intent = new Intent(Test.this.getBaseContext(),Test.class);
         //textChange();
        if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) {
            //textChange();
            return false;
        }

        // right to left swipe
        if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
                && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {                textChange();
            startActivity(intent);
            Test.this.overridePendingTransition(
                    R.anim.slide_in_right, R.anim.slide_out_left);

            return true;
            // right to left swipe
        } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
                && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
            // startActivity(intent);
            // textChange();
            Test.this.overridePendingTransition(
                    R.anim.slide_in_left, R.anim.slide_out_right);
        }

        return false;
    }
    @Override
    public boolean onDown(MotionEvent e) {
        return true;
    }
}

}


Android 有几个内置的 Horizo​​ntalScrollView 并从您的问题中读取,看起来您只是想启用滚动并能够锁定每个页面以供您选择。

ViewPager 可能正是您实现该功能所需要的。您可以从以下位置阅读有关该模块的信息Android 开发者博客 http://android-developers.blogspot.com/2011/08/horizontal-view-swiping-with-viewpager.html。请参阅下图(取自该网站),它似乎与您想要实现的功能类似。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在android中制作水平滚动视图 的相关文章

  • BLE 外设支持 Android-L 示例 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我希望有一个适用于 Android L 的 BLE 外设模式的示例 我的代码给了我奇怪的错误 即广告商太多 这没有任何意
  • 处理 Android 锁屏上的音量变化?

    我想做的是 能够在 android 4 4 上的锁屏上捕获音量增大 减小按钮操作 Google Cast 设计清单 https developers google com cast docs design checklist sender
  • 使用 GoogleServices 插件时忽略 Gradle ArchivesBaseName

    我经常使用 archivesbasename 来重命名我的输出 apk 但自从使用 google services 插件后 它就被忽略了 我能做些什么来让它再次工作吗 下面附上了我完整的 build gradle 感谢您的指点 apply
  • 添加动态数据时 footable 出现问题

    我需要 jQuery Mobile 方面的一些帮助富表 http css tricks com footable a jquery plugin for responsive data tables 我正在表中动态添加数据 HTML tab
  • BluetoothAdapter.getDefaultAdapter() 不返回 null

    这是我的第一篇文章 所以如果我做了一些愚蠢的事情 请告诉我 这个问题可能看起来与其他帖子类似 但或多或 少与我所看到的所有内容相反 关于该项目的事情 我正在开发 android 4 0 4 4 应用程序 我正在使用蓝牙 我正在运行 andr
  • 如何将 Android Instrumentation 测试推送到模拟器/设备?

    我正在尝试使用 Ubuntu 9 04 中的命令行 shell 在 Android 模拟器上运行 Webkit 布局测试 adb s emulator 5554 shell am instrument w com android dumpr
  • ListView:防止视图回收

    我有一个使用回收视图的 ListView 我试图阻止视图被回收 所以我使用 setHasTransientState android support v4 view ViewCompatJB setHasTransientState Vie
  • 如何忽略 LeakCanary 中的某些类?

    有人能给我一个如何忽略 LeakCanary 中的某些类的有效示例吗 我正在查看这个示例 以忽略 LeakCanary 中第三方库中的某些类 但我不知道将其放在应用程序中的何处 我把它放在我的应用程序类中 但这些变量和方法有错误 isInA
  • Android CursorAdapter、ListView 和后台线程

    我一直在开发的这个应用程序有包含数兆字节数据的数据库可供筛选 许多活动只是列表视图 通过数据库中的各个级别的数据下降 直到到达 文档 即从数据库中提取并显示在手机上的 HTML 我遇到的问题是 其中一些活动需要能够通过捕获击键并重新运行带有
  • 多语言 Android 应用程序:在电子邮件和密码字段中显示英文键盘

    我们正在开发一款多语言 Android 应用程序 针对英语和阿拉伯语 面临的问题是在登录和注册屏幕中 我们希望仅以英文文本输入用户名和密码字段 从而显示英文键盘 无论设备区域设置语言如何 已尝试在 edittext 中设置 inputtyp
  • 需要在 Android 中伪造正在扫描的 NFC 标签

    好的 我有一个应用程序 此应用程序仅在扫描 NFC 标签 任何标签 时才会完成任务 唯一的问题是 我没有任何 nfc 标签 无论如何 我正试图消除对卡的需要 所以我需要的是一种 伪造 使其看起来 就像已扫描 nfc 标签的方法 我可以编写应
  • android:进程和进程名称

    我试图理解android process属性 Ref says http developer android com guide topics manifest application element html proc 如果分配给该属性的
  • 无法在云控制台中启用 Maps SDK for Android

    我在云控制台中启用适用于 Android 的 Maps SDK 时遇到此问题 https console cloud google com https console cloud google com 它会抛出以下错误 附截图 我收到错误消
  • 使用 mupdf android 库导航到特定页面

    我如何使用 muPDF 库导航到特定页面 或者有没有办法让图书馆不记得我最后在那个pdf文件中浏览的是哪一页 Uri uri Uri parse path Intent intent new Intent MainActivity getC
  • 我应该选择的最低 SDK 版本是多少? (截至2018年11月)

    据我所知 android studio 中默认的最小 SDK 设置是 15 我读到我应该增加它 因为没有多少人 或者可能没有 仍在使用该 android 版本 另外 我计划使用 android studio 中的一些新功能 这些功能仅适用于
  • Android Drawable 绘图性能?

    在我看来 我有一个简单的 ARGB 可绘制对象 大约需要 2 毫秒才能绘制 但我可以在 0 5 毫秒内绘制与位图相同的文件 只是一些快速代码 我真的不能认为它是一个选项 优化可绘制对象的绘制速度的最佳方法是什么 这取决于可绘制的数量以及每个
  • 使用 UPI url 调用 PSP 应用程序

    我正在尝试创建一个商家应用程序 它将根据 NPCI 的指南生成一个 url 此 url 将作为意图共享 并且 PSP 应用程序 任何注册的银行应用程序 应该能够侦听该 url 并被调用 我已经形成了这样的网址 upi pay pa icic
  • 如何通过 AppCompatActivity 使用 YouTube Android 播放器 API

    为了在我的应用程序中播放视频 我决定扩展 YouTube Android Player API 但问题是我的菜单消失了 因为我没有从 AppCompatActivity 扩展 问题是 如何使用 YouTube Android Player
  • 动态创建 JSON 对象

    我正在尝试使用以下格式创建 JSON 对象 tableID 1 price 53 payment cash quantity 3 products ID 1 quantity 1 ID 3 quantity 2 我知道如何使用 JSONOb
  • 查询联系人 - 有时返回空游标

    我正在尝试查询联系人的显示名称 Override public void onActivityResult int requestCode int resultCode Intent data switch requestCode case

随机推荐