Android 动态配置ViewPager小部件的视图?

Android 动态配置ViewPager小部件的视图?,android,Android,首先,我要说的是,我对android开发非常陌生(尽管我对java的基础知识有很好的理解),我正在为我工作的一家校园刊物构建一个杂志阅读器应用程序 我想使用ViewPager小部件显示每篇文章。我将构建一个java程序,使杂志编辑器能够将.txt格式的文章以及与每个文章相关的图像发布到服务器上,并让android应用程序定期将这些文章下载到本地文件夹 对于如何从文本文件构建每个ViewPager的视图,我有点困惑。不知何故,我的逻辑需要确定运行应用程序的屏幕大小,以便知道每个屏幕上可以容纳多少个

首先,我要说的是,我对android开发非常陌生(尽管我对java的基础知识有很好的理解),我正在为我工作的一家校园刊物构建一个杂志阅读器应用程序

我想使用ViewPager小部件显示每篇文章。我将构建一个java程序,使杂志编辑器能够将.txt格式的文章以及与每个文章相关的图像发布到服务器上,并让android应用程序定期将这些文章下载到本地文件夹

对于如何从文本文件构建每个ViewPager的视图,我有点困惑。不知何故,我的逻辑需要确定运行应用程序的屏幕大小,以便知道每个屏幕上可以容纳多少个单词


这是对的,还是我根本就误解了ViewPager?如果是这样的话,我该如何构造程序,以便根据提供给它的txt+图像动态配置视图?

据我所知,每个页面将包含尽可能多的文章,当用户选择文章时,他们将能够看到整个内容。像这样的东西,但它占据了整个屏幕

如果是这种情况,您有两个选择:

  • 只需省略号文本视图,使其以“…”结尾。可能是首选的解决方案
  • 调整TextView的大小以适合所有文本()

  • 编辑: 对你的问题有不同的解释

    据我所知,你试图拥有一些像电子书阅读器一样的东西,但页数不确定;Flipboard的功能是:

    基本上,一旦所有文本填充整个区域,您就可以让它继续到下一页

    如果不需要本机性能,最简单的方法就是使用
    WebView
    ,将文本拆分为多个列,一次只显示一列

    然而,当然可以计算出整个文本的高度,然后将其相应地拆分;i、 e


    类似的问题似乎也被问到了,并得到了解决:(见公认的答案)。

    据我所知,每页都将包含尽可能多的文章,当用户选择文章时,他们将能够看到整个内容。像这样的东西,但它占据了整个屏幕

    如果是这种情况,您有两个选择:

  • 只需省略号文本视图,使其以“…”结尾。可能是首选的解决方案
  • 调整TextView的大小以适合所有文本()

  • 编辑: 对你的问题有不同的解释

    据我所知,你试图拥有一些像电子书阅读器一样的东西,但页数不确定;Flipboard的功能是:

    基本上,一旦所有文本填充整个区域,您就可以让它继续到下一页

    如果不需要本机性能,最简单的方法就是使用
    WebView
    ,将文本拆分为多个列,一次只显示一列

    然而,当然可以计算出整个文本的高度,然后将其相应地拆分;i、 e


    类似的问题似乎也被问到并解决了:(见公认的答案)。

    你的方法让我有点害怕。研究soa(面向服务的体系结构),它可能导致您实现Web服务。我意识到这是离题的,但我只是想帮你。这会吓到你吗,因为在android设备上,这会占用太多资源?我很担心这个。我感谢您的帮助-您建议我实现web服务的确切目的是什么?我已经多次实现了您想要的。我将实现一个RESTful API(web服务)。您的web服务可以与用于持久存储的数据库通信。然后,内容创建者可以使用您创建的应用程序通过API添加/更新文章。然后,Android应用程序可以获得最新10篇文章(最有可能是JSON或XML)的列表,并通过将响应反序列化为对象来填充ViewPager项。你可以用GSON或类似的东西。你的方法让我有点害怕。研究soa(面向服务的体系结构),它可能导致您实现Web服务。我意识到这是离题的,但我只是想帮你。这会吓到你吗,因为在android设备上,这会占用太多资源?我很担心这个。我感谢您的帮助-您建议我实现web服务的确切目的是什么?我已经多次实现了您想要的。我将实现一个RESTful API(web服务)。您的web服务可以与用于持久存储的数据库通信。然后,内容创建者可以使用您创建的应用程序通过API添加/更新文章。然后,Android应用程序可以获得最新10篇文章(最有可能是JSON或XML)的列表,并通过将响应反序列化为对象来填充ViewPager项。你可以用GSON或者类似的东西,不完全可以。实际上,我有一个listview,用户可以使用它滚动浏览不同的文章。当他们选择其中一个时,我希望他们能够在viewpager中查看整个文章。那么,如何构造视图以插入viewpager,从而使每个视图都有足够的文本来填充屏幕呢。你是说删除文本视图可以自动帮我解决这个问题吗?嗯。。也许我可以使用getElipsiScont计算出文章需要多少页面,然后使用for循环来创建和填充每个页面?类似于for(curr=0;curr