Android布局 - 线性布局中的居中图标

时间:2013-12-13 06:17:08

标签: android android-layout

我知道这可能是一个微不足道的问题,但我无法让它发挥作用:

部分活动代码:

<LinearLayout
            android:id="@+id/send_layout"
            android:layout_width="120dp"
            android:layout_height="40dp"
            android:orientation="horizontal"
            android:layout_marginTop="5dp"
            android:background="@drawable/rounded"
            android:clickable = "true"
            android:weightSum="1" >

            <ImageView
                android:id="@+id/send_icon"
                android:layout_height="fill_parent"
                android:layout_width="wrap_content"
                android:scaleType="centerCrop"      
                android:src="@drawable/ic_action_send_now"
                android:gravity="center_horizontal"
                android:padding="5dip"/>
        </LinearLayout>

这是drawable文件夹下的圆角形状:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="5dp"
android:shape="rectangle" >

<corners android:radius="5dp"/>

<solid android:color="#ccc" />

</shape>   

</item>

<item android:bottom="0.5dp">
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:padding="5dp"
    android:shape="rectangle" >

    <solid android:color="#FFFFFF" />

    <!-- <stroke
        android:width="1dp"
        android:color="#2f6699" /> -->

    <corners
        android:bottomLeftRadius="5dp"
        android:bottomRightRadius="5dp"
        android:topLeftRadius="5dp"
        android:topRightRadius="5dp" />

</shape>   
</item>

</layer-list>

无论我如何使用LinearLayout中图像的重力,它仍然位于左侧。有人可以看看,让我知道如何使图像居中?

6 个答案:

答案 0 :(得分:2)

将线性布局的重力更改为居中而不是Imageview。它会起作用

  <LinearLayout
            android:id="@+id/send_layout"
            android:layout_width="120dp"
            android:layout_height="40dp"
            android:orientation="horizontal"
            android:layout_marginTop="5dp"
            android:layout_centerInParent="true"
            android:gravity="center"
            android:background="@drawable/rounded"
            android:clickable = "true" >

            <ImageView
                android:id="@+id/send_icon"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:padding="5dp"
                android:scaleType="centerCrop"
                android:src="@drawable/ic_launcher" 
                android:contentDescription="@string/hello_world"/>

检查屏幕截图

enter image description here

答案 1 :(得分:0)

其实我不确定,但试试这个:

  <LinearLayout
        android:id="@+id/send_layout"
        android:layout_width="120dp"
        android:layout_height="40dp"
        android:orientation="horizontal"
        android:layout_marginTop="5dp"
        android:background="@drawable/rounded"
        android:gravity="center_horizontal"
        android:clickable = "true"
        android:weightSum="1" >

        <ImageView
            android:id="@+id/send_icon"
            android:layout_height="fill_parent"
            android:layout_width="wrap_content"
            android:scaleType="centerCrop"      
            android:src="@drawable/ic_action_send_now"
            android:padding="5dip"/>
    </LinearLayout>

如果不起作用,请尝试:

<LinearLayout
        android:id="@+id/send_layout"
        android:layout_width="120dp"
        android:layout_height="40dp"
        android:orientation="horizontal"
        android:layout_marginTop="5dp"
        android:background="@drawable/rounded"
        android:clickable = "true"
        android:weightSum="1" >

        <ImageView
            android:id="@+id/send_icon"
            android:layout_height="fill_parent"
            android:layout_width="wrap_content"
            android:scaleType="centerCrop"      
            android:src="@drawable/ic_action_send_now"
            android:layout_gravity="center_horizontal"
            android:padding="5dip"/>
    </LinearLayout>

愿这对你有所帮助。如果没有那么评论。

答案 2 :(得分:0)

试试这个

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/send_layout"
android:layout_width="120dp"
android:layout_height="40dp"
android:layout_marginTop="5dp"
android:background="@drawable/borderr"
android:clickable="true"
android:gravity="center_horizontal"
android:orientation="horizontal"
android:weightSum="1" >

<ImageView
    android:id="@+id/send_icon"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:padding="5dip"
    android:scaleType="centerCrop"
    android:src="@drawable/ic_launcher" />

答案 3 :(得分:0)

试试这个

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/send_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:orientation="vertical" >

答案 4 :(得分:0)

这是因为您正在使用android:scaleType="centerCrop"以及android:layout_height="fill_parent" android:layout_width="wrap_content"

imageView

尝试以下数据

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/send_layout"
    android:layout_width="120dp"
    android:layout_height="40dp"
    android:layout_marginTop="5dp"
    android:background="@drawable/ic_launcher"
    android:clickable="true"
    android:orientation="horizontal"
    android:weightSum="1" >

    <ImageView
        android:id="@+id/send_icon"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="5dip"
        android:src="@drawable/ic_launcher" />

</LinearLayout>

答案 5 :(得分:0)

这就是我将文本视图居中的方式..希望你能帮到它

rounded_corners.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<!-- Bottom 2dp Shadow -->
<item>
<shape android:shape="rectangle">

<solid android:color="#f47621" />
<corners android:radius="7dp" />

</shape>
</item>

<!-- White Top color -->
<item android:bottom="3px">

<shape android:shape="rectangle">

<solid android:color="#FFFFFF" />
<corners android:radius="7dp" />


</shape>

</item>

</layer-list>

并在主要活动

<RelativeLayout
    android:id="@+id/panel"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:alpha="0"                
    android:gravity="center_horizontal"
    android:orientation="vertical"
    android:background="#f47621" >

        <TextView
            android:id="@+id/lbl"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:alpha="0"
            android:text="A"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textSize="32sp"
            android:translationX="0dp" 
            android:background="@drawable/rounded_corners"
            android:gravity="center" />

</RelativeLayout>