【问题标题】:How to give shadow effort on gridview item in android如何在android中的gridview项目上给予阴影效果
【发布时间】:2021-05-24 11:43:27
【问题描述】:

我想在 gridview 的每个项目上做阴影。

product_page_grid_view

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="15dp"
    android:paddingRight="15dp"
    android:paddingLeft="15dp"
    android:paddingBottom="5dp"
    >

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/image_grid_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
           />

        <ImageView
            android:id="@+id/heart"
            android:layout_width="30dp"
            android:layout_height="20dp"
            android:layout_alignParentRight="true" />

    </RelativeLayout>



    <TextView
        android:id="@+id/product_id_grid_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone" />


    <TextView
        android:id="@+id/product_name_grid_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:maxLines="1"
        android:ellipsize="end"
        android:paddingLeft="10dp"
        android:textSize="12dp"
        android:textColor="@color/divder_color"
       />




    <TextView
        android:id="@+id/products_price_grid_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:text="123"
        android:textColor="#999999"
        android:paddingLeft="10dp"
        />


        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/product_discount_grid_view"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@android:color/black"
                android:paddingLeft="10dp"
                android:text="1891"
               />

            <TextView
                android:id="@+id/product_special_grid_view"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@android:color/black"
                android:text="1891"
                android:paddingLeft="10dp"
               />




            <TextView
                android:id="@+id/products_off_grid_view"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="20"
                android:textSize="10dp"
                android:layout_alignParentRight="true"
                android:textColor="@android:color/holo_red_dark"
                android:paddingRight="5dp"
             />

        </RelativeLayout>


    <RatingBar
        android:id="@+id/ratingBar_grid_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="5"
        style="?android:attr/ratingBarStyleSmall"
        android:rating="0" />

</LinearLayout>

这里是我的 grid_view:-

        <GridView
            android:id="@+id/list_product_grid"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            tools:listitem="@layout/products_page_grid_view"
            android:numColumns="2"
            android:horizontalSpacing="8dp"
            android:gravity="center"
            android:paddingLeft="8dp"
            android:paddingRight="8dp"
            android:visibility="visible"
            android:verticalSpacing="8dp"/>

我是android开发新手请帮助我。任何人都可以帮助我解决我的问题。提前致谢

【问题讨论】:

  • 在 GridView 上使用 android:elevation="5dp"

标签: android gridview


【解决方案1】:

您可以为每个视图使用海拔属性。

android:elevation="2dp"

【讨论】:

    【解决方案2】:

    对于 GridView 的每个项目,您可以覆盖您自己的 GridView 适配器的方法,您可以将提到的高程添加到 ViewGroup。

    类似这样的:

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    
        ViewGroup vg;
    
        if(convertView == null){
            vg = new RelativeLayout(mContext);
    
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
                vg.setElevation(10);
    
            vg.setBackgroundResource(R.drawable.your_background);
    
        }
        else{
            vg = (ViewGroup) convertView;
        }
    
        return vg;
    }
    

    希望对你有帮助:)

    【讨论】:

      【解决方案3】:

      在您的可绘制文件夹中创建以下形状文件。

      <!-- res/drawable/myrect.xml -->
      <shape xmlns:android="http://schemas.android.com/apk/res/android"
             android:shape="rectangle">
          <solid android:color="#42000000" />
          <corners android:radius="5dp" />
      </shape>
      

      将此添加为项目布局的背景。并给出一些高度,对我来说是 2dp。根据您的设计进行更改。

      android:elevation="2dp"
      android:background="@drawable/myrect" 
      

      这是确切的解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-18
        • 2014-12-08
        • 1970-01-01
        • 2011-03-18
        • 2011-07-18
        • 2018-07-05
        • 2015-03-08
        • 2015-10-02
        相关资源
        最近更新 更多