我正在设计一个页面,但在这一点上卡住了。如果有人知道请告诉。我想这样做:
放置图像像鸟与圆角广场被放置。
lvjbypge1#
自从我2年前发布这个帖子以来,我看不到任何有用的答案,我自己来回答。这可以在CoordinatorLayout中通过使用layout_anchor和layout_anchorGravity来实现,我们可以将一个View锚定到另一个View,这非常简单,因为这是CoordinatorLayout的内置行为。
CoordinatorLayout
layout_anchor
layout_anchorGravity
View
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context=".MyActivity"> <ImageView android:id="@+id/header" android:layout_width="match_parent" android:layout_height="180dp" android:adjustViewBounds="true" android:scaleType="centerCrop" android:src="@drawable/img_banner" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_logo" app:layout_anchor="@id/header" app:layout_anchorGravity="bottom|center_horizontal" /> </android.support.design.widget.CoordinatorLayout>
i7uq4tfw2#
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.testing.MainActivity" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:background="#0000ff" android:orientation="vertical" android:layout_weight="1" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:background="#00ffff" android:orientation="vertical" android:layout_weight="1" /> </LinearLayout> <LinearLayout android:layout_width="100dp" android:layout_height="100dp" android:orientation="vertical" android:background="#00ff00" android:layout_gravity="center" /> </FrameLayout>
它将类似于
mzmfm0qo3#
您可以使用布局组件Guideline以像素或百分比分割屏幕,并将其用作锚以固定任何其他组件。
pkbketx94#
您可以在这里找到解决方案:https://stackoverflow.com/a/25143739/5907003如果你想calculate the height dynamically,你可以使用下面的代码,从链接的问题。学分到Kevin Coppock。
int finalHeight, finalWidth; final ImageView iv = (ImageView)findViewById(R.id.scaled_image); final TextView tv = (TextView)findViewById(R.id.size_label); ViewTreeObserver vto = iv.getViewTreeObserver(); vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { public boolean onPreDraw() { iv.getViewTreeObserver().removeOnPreDrawListener(this); finalHeight = iv.getMeasuredHeight(); finalWidth = iv.getMeasuredWidth(); tv.setText("Height: " + finalHeight + " Width: " + finalWidth); return true; } });
也只是一个想法,如果这可以帮助,你可以分为两个部分的图像,并对齐他们与您的布局作为对齐底部和顶部与各自的布局对于圆角背景,您可以在drawable文件夹中创建bg.xml
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FFFFFF"/> <stroke android:width="3dip" android:color="#B1BCBE" /> <corners android:radius="10dip"/> <padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" /> </shape>
4条答案
按热度按时间lvjbypge1#
自从我2年前发布这个帖子以来,我看不到任何有用的答案,我自己来回答。
这可以在
CoordinatorLayout
中通过使用layout_anchor
和layout_anchorGravity
来实现,我们可以将一个View
锚定到另一个View
,这非常简单,因为这是CoordinatorLayout
的内置行为。i7uq4tfw2#
它将类似于
mzmfm0qo3#
您可以使用布局组件Guideline以像素或百分比分割屏幕,并将其用作锚以固定任何其他组件。
pkbketx94#
您可以在这里找到解决方案:
https://stackoverflow.com/a/25143739/5907003
如果你想calculate the height dynamically,你可以使用下面的代码,从链接的问题。学分到Kevin Coppock。
也只是一个想法,如果这可以帮助,你可以分为两个部分的图像,并对齐他们与您的布局作为对齐底部和顶部与各自的布局
对于圆角背景,您可以在drawable文件夹中创建bg.xml