将屏幕分成两半并将图像视图放在两半的两半上

时间:2016-02-26 06:34:18

标签: android-layout layout imageview relativelayout

我正在设计一个页面,但此时陷入困境。如果有人知道请告诉。 我想这样做:

放置像圆形方形鸟一样的图像。

4 个答案:

答案 0 :(得分:1)

angular.module('todoApp', [])
  .controller('TodoListController', function() {
    var toList = this;
    toList.todos = [{name:'test 1'},{name:'test 2'}];
    toList.example = function(v) {
      v.name = 'ora bene';
    };
  });

看起来像这样 enter image description here

答案 1 :(得分:1)

自从我两年前发布此书以来,我看不到任何有用的答案,所以我自己回答。

可以在CoordinatorLayout中将layout_anchorlayout_anchorGravity结合使用,我们可以将View锚定到另一个View。这很简单,因为它是CoordinatorLayout的内置行为。

<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>

答案 2 :(得分:0)

您可以在此处找到解决方案:

https://stackoverflow.com/a/25143739/5907003

如果您想calculate the height dynamically,可以使用以下代码:

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;
    }
});

另外只是一个想法,如果它可以帮助,您可以将图像分为两个部分,并将它们与您的布局对齐为对齐底部和对齐顶部与相应的布局

对于圆角背景,您可以在可绘制文件夹中创建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>
祝你好运!

答案 3 :(得分:0)

您可以使用布局组件Guideline将屏幕拆分为像素或百分比,并将其用作固定其他任何组件的屏幕。