【问题标题】:Other fragment for vertical an landscape picture [closed]垂直横向图片的其他片段[关闭]
【发布时间】:2013-12-04 21:41:35
【问题描述】:

在应用程序中我有ListView,当点击时,会出现新的fragment。在新片段中是图片。但其中一些是肖像,一些主题是风景。当图片是风景时,我想创建其他片段。我在哪里可以定义要打开的片段?有教程、例子吗?

打开新片段:

   public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        if (savedInstanceState != null) {
            mCurrentPosition = savedInstanceState.getInt(ARG_POSITION);
        }

        Resources res = this.getResources();
        location = res.getStringArray(R.array.streets);
        authorsNicks = res.getStringArray(R.array.authors_nicks);
        imageMain = res.getIntArray(R.array.images);

        if(??????????????)
           return inflater.inflate(R.layout.menu_fragment, container, false);
        else
           return inflater.inflate(R.layout.menu_fragment, container, false);
    }

在 XML 中,我有两个文件:一个用于 PORTRAIT 图片,一个用于 LANDSCAPE。

【问题讨论】:

  • 显示到目前为止您尝试过的内容。
  • 到目前为止,我有 ListView 片段和 Portret 视图片段。我不知道如何检查图片是否垂直或如何设置此信息。一种方法是创建列表并注意图片何时为横向(布尔数组 1-垂直,0-水平),但我相信有更好的方法

标签: android view fragment landscape-portrait


【解决方案1】:

如果您以编程方式将片段添加到活动中,则可以检查您的图片是横向还是纵向,然后启动您想要的任何片段。请参阅此处的文档:

http://developer.android.com/guide/components/fragments.html#Adding

您的代码将如下所示

FragmentManager fragmentManager = getFragmentManager()
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

if (landscapeImage) {
    LanscapeFragment fragment = new LandscapeFragment();
    fragmentTransaction.add(R.id.fragment_container, fragment);
} else {
    PortraitFragment fragment = new PortraitFragment();
    fragmentTransaction.add(R.id.fragment_container, fragment);
}
fragmentTransaction.commit(); 

为了确定您的图像是landscape 还是portrait - 我假设您的意思是图像的宽度是否大于高度,您可以将图像加载到位图中,并检查其宽度与它的高度相比。

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.my_image);
boolean landscape = bm.getWidth() > bm.getHeight();

【讨论】:

  • 它的简单功能。当图片是横向时,我不知道如何发送信息。我应该创建数组并注意图片是否为横向?我相信有更好的方法
  • 我不确定我是否理解您的问题。当您说横向时,您的意思是设备旋转到横向,还是您要在片段中显示的图片宽大于高?如果您添加了一些代码,特别是在您当前添加片段的地方,它可能会帮助我更好地理解您正在尝试做什么。
  • 当我说风景/肖像时,我指的是图片。对于设备,我可以使用文件夹布局土地。我有带有 ViewList 的片段和带有文本和图片的片段。当图片处于横向位置时,我想在其他片段中打开它。
  • ListView 是的,你是对的。这正是我想做的事
  • 啊,我明白了,您还问如何确定图像是横向还是纵向?我已经更新了我的答案。
猜你喜欢
  • 1970-01-01
  • 2017-06-26
  • 2017-08-09
  • 1970-01-01
  • 1970-01-01
  • 2023-01-14
  • 1970-01-01
  • 1970-01-01
  • 2012-08-22
相关资源
最近更新 更多