中心图像视图和文本视图中的线性布局

时间:2017-12-01 05:32:29

标签: android android-layout textview imageview android-linearlayout

我希望搜索图标下方有搜索文字。搜索图标+文本组应位于屏幕中央。

想要什么:____________屏幕实际上的样子:

enter image description here enter image description here

注意:我使用了线性布局,因为我需要直接在下面的列表视图。它将用于搜索栏。对于那些建议使用TextView的android:drawableTop的人,我试过了,但是图像太小了(即使我将图像设置为500px),而不是在图像视图中将图像设置为“100dpx100dp”。

代码

<LinearLayout 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:orientation="vertical">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_gravity="center_horizontal"
            app:srcCompat="@drawable/ic_search_gray_500px" />

        <TextView
            android:id="@+id/searchTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/search_hint"
            android:layout_gravity="center_horizontal"
            tools:layout_editor_absoluteX="130dp"
            tools:text="@string/search_hint" />

    </android.support.constraint.ConstraintLayout>

    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />


</LinearLayout>

Reference

4 个答案:

答案 0 :(得分:3)

下面的代码将解决您的问题:

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

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:orientation="vertical">

            <ImageView
                android:id="@+id/imageView"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_gravity="center_horizontal"
                android:src="@drawable/app_logo_main" />

            <TextView
                android:id="@+id/searchTextView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Search"
                android:textAlignment="center"
                android:textColor="@color/colorPrimary" />

        </LinearLayout>

    </RelativeLayout>

答案 1 :(得分:2)

仅使用TextView,在TextView中有一个属性是drawableTop,用于图像。如果你想在图像和文本之间留一些间距,那么使用drawablePadding。

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

        <TextView
            android:id="@+id/searchTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableTop="@drawable/ic_search_gray_500px"
            android:text="@string/search_hint"
            android:layout_centerInParent="true />

    <ListView
        android:layout_below="searchTextView"
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>

答案 2 :(得分:2)

试试这个

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:orientation="vertical"
            android:visibility="gone">

            <ImageView
                android:id="@+id/imageView"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_gravity="center_horizontal"
                android:src="@drawable/ic_launcher" />

            <TextView
                android:id="@+id/searchTextView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/search_hint"
                android:textAlignment="center"
                android:textColor="@color/colorBlack" />


        </LinearLayout>

        <ListView
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />




</LinearLayout>
</RelativeLayout>

答案 3 :(得分:1)

您可以使用 $servername = "localhost"; $username = "root"; $password = ""; $dbname = "test"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); }

RelativeLayout