具有水平scoll视图的动态插入布局

时间:2016-03-14 07:57:12

标签: android

my image is here please show it

请帮助我需要这种类型的自定义布局来获取产品图像和来自database的名称。所以我需要在从服务器获取数据时创建一个以上的布局

NEED: 产品名称必须低于图像。 产品名称和图像都在一个布局中,但是其他第二个图像和名称以新的layout.same作为第一个

2 个答案:

答案 0 :(得分:0)

在xml中定义此小部件。

 <GridView
        android:id="@+id/frg_home_categoryGridView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:horizontalSpacing="1dp"
        android:numColumns="2"
        android:scrollbars="none"
        android:stretchMode="columnWidth"
        android:verticalSpacing="1dp">

    </GridView>

为此创建inflater

      <RelativeLayout

        android:layout_width="match_parent"
        android:layout_height="@dimen/flexible_space_image_height"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/inf_categoryIv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop" />


        <TextView
            android:id="@+id/inf_categoryTv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:background="@drawable/black_gradient"
            android:gravity="bottom"
            android:padding="@dimen/margin10"
            android:text="@string/app_name"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@android:color/white" />


    </RelativeLayout>

比获得数据后,您必须在GridView tutorial上设置适配器。

答案 1 :(得分:0)

如果您想使用水平滚动视图,请找到以下答案。
首先创建主XML文件。


main.xml中

<LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="horizontal">

      <HorizontalScrollView
              android:id="@+id/horizontalScrollView1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content">
      </HorizontalScrollView>

</LinearLayout>



现在创建第二个自定义布局文件
custom_layout.xml

<LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical">

     <ImageView
          android:width="wrap_content"
          android:height="wrap_content"
          android:id="@+id/imageView" />

     <TextView
          android:width="wrap_content"
          android:height="wrap_content"
          android:id="@+id/textView" />
</LinearLayout >


现在,在您的.Java文件上实现完整填充图像的编码,并将视图添加为子视图水平滚动视图。
MainActivity.Java

public class MainActivity extends AppCompatActivity
{
  private HorizontalScrollView hsv;
  private int IMAGES_RESOURCES[] = {R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4, R.drawable.image5};

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

     hsv = (HorizontalScrollView) findViewById(R.id.horizontalScrollView1);
     addImages();

   }
}

public void addImages()
{
  for(int i = 0; i < 5; i++)
  {
      LayoutInflater inflater = LayoutInflater.from(context);
      View subLayout = inflater.inflate(R.layout.custom_layout, null, false);
      TextView tv = (TextView) subLayout.findViewById(R.id.textView);
      ImageView imageView = (ImageView) subLayout.findViewById(R.id.imageView);

    tv.setText("Cake " + i);
    imageView.setImageResource(IMAGES_RESOURCES[i]);

  hsv.addView(subLayout);
  }
}