9

谁能告诉我这个照片效果叫什么。我想知道如何为这个附加的图像效果创建一个适配器。

@Edited:这是 Android 市场的示例照片。我想创建这样的布局。我想这应该覆盖一个 GridView 适配器。

人像截图


照片

风景截图


照片


另一个截图


照片

非常抱歉我的问题对你们来说不是很清楚。

可能重复

4

7 回答 7

13

你有没有试过这个:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.54" >
        <Button
            android:id="@+id/Button01"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1.00"
            android:text="Button" />    
        <Button
            android:id="@+id/Button02"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1.00"
            android:text="Button" />    
    </LinearLayout>
    <Button
        android:id="@+id/button3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button" />  
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="99dp" > 
        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="Button" />  
        <Button
            android:id="@+id/button2"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="Button" />    
    </LinearLayout>   
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >    
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="vertical" >   
            <Button
                android:id="@+id/button4"
                android:layout_width="match_parent"
                android:layout_height="152dp"
                android:text="Button" />    
            <Button
                android:id="@+id/button5"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Button" />    
        </LinearLayout>    
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="vertical" >
            <Button
                android:id="@+id/button6"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Button" />
            <Button
                android:id="@+id/button7"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="Button" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

检查这个线程:异构GridLayout

在此处输入图像描述

于 2012-07-31T09:42:40.580 回答
4

您按以下顺序创建:

权重总和为 2 的线性布局(垂直);

LinearLayout(VERTICAL),权重为 1,weightSum 为 3;

里面有 3 个布局,权重为 0.70 的水平线性布局,权重为 0.50 的水平线性布局和权重为 1.80 的 imageView

LinearLayout(VERTICAL),权重为 1,权重总和为 3;

里面将是3个线性布局

2 *(其中 2 个)-在此水平布局内,权重为 0.50 且权重总和为 2 的水平将是两个图像视图,每个图像视图的权重为 1

第三个也是最后一个权重为 1.50 的图像视图

这样做,您将拥有您喜欢的正确加权布局

于 2012-07-25T11:42:13.777 回答
3

您可以创建表格布局,在表格行中,您可以添加列和行跨度来创建这样的布局。

于 2012-07-23T05:11:46.013 回答
3

这个看起来不像普通的 Gridview 或 listview 适配器。您可能必须为其创建自定义控件。例如,在给定的示例中,某些应用程序与其他应用程序相比具有更大的权重。权重较大的应占全幅,其他占宽度的 50% 或 33%(基于横向或纵向)。

所以逻辑创建一个表格布局并基于权重在适配器上添加更多控件。并且根据权重,您必须相应地创建行或列跨度。

于 2012-07-26T07:24:54.367 回答
3

如果我要复制市场布局,我会使用以下类:

 1. Obviously ViewPager for horizontal swiping ability.
 2. A heavily customized ListView.

ListView 中有一个名为 的方法addHeaderView(),您可以在其中使用您自己的自定义布局来操作列表视图中出现的前几个项目。在这种情况下,列表中的第一个、第 4 个、第 5 个和第 6 个项目将是一个ImageView与它的宽度匹配的父项,并且可能是一个固定的高度。

第 2 项和第 3 项将只是水平LinearLayout的,具有 2 个具有相同权重的 ImageView,其余的只是具有自定义布局的 Listview。

以上所有这些都是指手机中的“人像”视图。对于“横向”视图,您将不得不手动进行。

诀窍是您如何修改您的BaseAdapter以填充您的列表视图。在默认列表视图中,一个“位置”指的是列表视图中的一行。在这种情况下,您的自定义列表视图布局由单行中的两个项目组成。试着弄清楚这一点,玩弄你的数据和数组。我确信它可以做到。=)

于 2012-07-30T16:27:32.390 回答
2

这应该使用GridView.

从外观上看,您有 3 种尺寸:一种覆盖 1 个空间,一种覆盖 2 个空间,另一种覆盖 4 个空间。这应该不容易。

但是图像在堆栈中的方式以及布局的方向我相信你最好的选择是通过GridView. 它在实现列和行方面非常灵活,并且在方向更改中提供了一些现成的实现。

您应该制作 3 种物品,一种有 4 个 small Views,另一种有 2 个 item,另一种有一个 big View。在每个单元格中都可以有上述之一。

根据某些属性,您应该填充GridView. 然后你应该尝试提供的选项GridView(它有一些属性可以根据布局中的宽度和高度“自动”堆叠元素)。这就是我所能提供的,因为我没有做过类似的事情。

编辑:试图实现android市场界面而不搜索一点点,只通过复制粘贴??这不可能像你想象的那么容易。

无论如何,如果我是你,我仍然会从我之前提到的实现开始。虽然我不能提供任何代码,因为我没有做过任何类似的事情,在你的情况下GridView,已经提供的所有实现将是一个很大的帮助。

PS:我的意见是先尝试搜索一下,然后再次更新问题。

于 2012-07-23T08:39:02.930 回答
2

我认为市场应用程序是使用ViewPager完成的,每个页面都包含一个RelativeLayoutLinearLayout. 为了制作类似metro的界面,GridView每个页面的a更合适。

    page 1             page 2         page 3
________________________________________________
|              |                 |              | 
|              |                 |              | 
|    GridView  |     GridView    |   GridView   | 
|              |                 |              | 
|              |                 |              | 
|              |                 |              | 
|              |                 |              |
|              |                 |              |
-------------------------------------------------

在这里,您将找到一些 ViewPager 教程的链接

这里还有一个

更新:

您甚至可以使用OverScroller在滚动时为其赋予弹性效果。

于 2012-07-25T13:32:40.453 回答