是否有任何可能的方法将项目放在Android中的ImageView中

时间:2017-11-10 08:57:25

标签: android picasso

我正在使用App,它有两个ImageView其中一个用于背景,用Picasso加载带有模糊效果的图像,第二个用正常形状显示海报,我想知道如何将textView等内容放在下面的图层上,这是我的模糊图像?

这是我的布局和代码的图片:

enter image description here

我想把那些IMDB,看着和想要TextViews的点数放在第二个ImageView,现在是Blur,我该怎么做?

<RelativeLayout
            android:id="@+id/pallet"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@color/transparent"
            android:transitionName="profile">

            <ImageView
                android:id="@+id/blur"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:scaleType="centerInside"
                android:transitionName="profile">
            </ImageView>


            <android.support.v7.widget.CardView
                android:id="@+id/cardView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_margin="20dp"
                android:elevation="0dp"
                app:cardCornerRadius="10dp"
                android:transitionName="profile">

                <ImageView
                    android:id="@+id/posterImage"
                    android:layout_width="match_parent"
                    android:layout_height="400dp"
                    android:scaleType="fitXY"
                    android:transitionName="profile"
                    android:layout_gravity="center"/>

                <ImageButton
                    android:id="@+id/playTrailer"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:layout_alignParentBottom="true"
                    android:layout_alignParentRight="true"
                    android:baselineAlignBottom="true"
                    android:layout_gravity="bottom|end"
                    android:layout_marginRight="35dp"
                    android:layout_marginBottom="35dp"
                    android:background="@drawable/play_circle"
                    android:elevation="10dp"
                    android:scaleType="fitCenter"/>

            </android.support.v7.widget.CardView>

        </RelativeLayout>


        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_above="@+id/cardView"
            android:background="@color/transparent">

            <TextView
                android:id="@+id/movieTitle"
                style="@style/movieTitleFont"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                android:textAlignment="center"
                android:textColor="@color/colorPrimaryDark"
                android:textSize="22dp"
                android:textStyle="bold" />
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp">

            <TextView
                android:id="@+id/watchNum"
                style="@style/movieTitleFont"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="25dp"
                android:text="341"
                android:textAlignment="viewStart"
                android:textSize="26dp" />

            <TextView
                android:id="@+id/wantNum"
                style="@style/movieTitleFont"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="880"
                android:textAlignment="center"
                android:textSize="26dp" />

            <TextView
                android:id="@+id/imdbNum"
                style="@style/movieTitleFont"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginRight="25dp"
                android:textAlignment="viewEnd"
                android:textSize="26dp" />
        </RelativeLayout>


        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp">

            <TextView
                android:id="@+id/watchNumtxt"
                style="@style/subText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dp"
                android:text="Watched"
                android:textAlignment="viewStart"
                android:textColor="@color/cardview_dark_background"
                android:textSize="18dp" />

            <TextView
                android:id="@+id/wantNumtxt"
                style="@style/subText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"

                android:text="Want"
                android:textAlignment="center"
                android:textSize="18dp" />

            <TextView
                android:id="@+id/imdbNumtxt"
                style="@style/subText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginRight="20dp"
                android:text="IMDB"
                android:textAlignment="viewEnd"
                android:textColor="@color/cardview_dark_background"
                android:textSize="18dp" />
        </RelativeLayout>

并且还有,我可以给Radius下面的模糊图像显示白色的角落?它现在是白色的,因为海报底部是白色的,我可以用picasso吗?

3 个答案:

答案 0 :(得分:0)

好的尝试这样的事情,我只是为了灵活性而简化,你应该得到逻辑,然后正确地放置你的物品。

你现在的问题是你有一个Layout叠加模糊和CardView但是你有另一个信息。 您应该将它们全部放在相同的相对布局中,以便允许叠加或创建子元素。

<RelativeLayout> <!-- Contains background (blur + infos) and CardView -->
    <RelativeLayout> <!-- Contains blur image and text informations (Not even necessarily needed depends on you) -->
        <ImageView
            android:id="@+id/blur" />

        <YourInformationsView/>
    </RelativeLayout>

    <android.support.v7.widget.CardView />

</RelativeLayout>

在SO上已经存在很多关于此类型的问题:Thisthis one。试着看看那些。

答案 1 :(得分:0)

为什么不在imageLayout中添加imageView和textView,并根据imageView的图像提供frameLayout背景。

<RelativeLayout>
    <FrameLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent">
        <ImageView android:id="@+id/blur" .../>

        <TextView ... />
    </FrameLayout>

    <android.support.v7.widget.CardView .../>

</RelativeLayout>

答案 2 :(得分:0)

不要考虑如何向ImageView添加内容,考虑如何在您需要的位置添加ImageView之上的内容。

<ImageView
   android:id="@+id/blur"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:adjustViewBounds="true"
   android:scaleType="centerInside"
   android:transitionName="profile">
</ImageView>

成为

的内容
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
      android:layout_alignParentTop="true"
      ...your ImageView/>

   <View
      this is your blurred view
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      do something to blur this />

   <RelativeLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_alignParentBottom="true"
       >

       your textviews...

   </RelativeLayout>

当然,如果您将RelativeLayout放入其中,则wrap_content高度不能再为match_parent,但您的图片看起来不像那样。它甚至看起来像ImageView上方但在文本下方的模糊层。它看起来并不像ImageView那样模糊,而是像它上面的模糊层一样。