我的菜单有点问题。我有3个Textview跨越设备的整个宽度。每个Textview都应包含上面的文字和图片。
问题: 图像始终显示在textview的边框上 在textview下面添加了开放空间(如果我删除了图像,下面的空间也消失了)
我希望图标和文字在我的textview中心对齐为“1”。
当前部分代码:(图标添加到xml外部,因此在此代码中不可见,我删除了一些与此部分无关的代码)
<RelativeLayout 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"
android:background="@color/backgroundBlue"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<LinearLayout
android:id="@+id/llMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >
<com.olbrecht.thescienceofwinning.SquareTextView
android:id="@+id/menu_ebook"
android:text="@string/menu_ebook"
android:textColor="@color/white"
android:layout_width="0dp"
android:layout_height ="fill_parent"
android:layout_weight="1"
android:gravity="center_vertical|center_horizontal"
android:background="@color/menuBlue" />
<com.olbrecht.thescienceofwinning.SquareTextView
android:id="@+id/menu_library"
android:text="@string/menu_library"
android:textColor="@color/white"
android:layout_width="0dp"
android:layout_height ="fill_parent"
android:layout_weight="1"
android:gravity="center_vertical|center_horizontal"
android:background="@color/menuBlue"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp" />
<com.olbrecht.thescienceofwinning.SquareTextView
android:id="@+id/menu_faq"
android:text="@string/menu_faq"
android:textColor="@color/white"
android:layout_width="0dp"
android:layout_height ="fill_parent"
android:layout_weight="1"
android:gravity="center_vertical|center_horizontal"
android:background="@color/menuBlue" />
</LinearLayout>
</RelativeLayout>
注意:我的textview的大小在每个设备上是不同的,取决于宽度,高度匹配等于宽度,形成一个正方形。
答案 0 :(得分:1)
通过更改android:gravity="center_horizontal"
并添加android:layout_gravity="bottom"
并添加以下代码以创建图标并计算高度以定义顶部填充:
TextView tv_ebook = (TextView)findViewById(R.id.menu_ebook);
tv_ebook.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ebook_icon, 0, 0);
BitmapDrawable bd_ebook=(BitmapDrawable) this.getResources().getDrawable(R.drawable.ebook_icon);
int h_ebook = bd_ebook.getBitmap().getHeight();
tv_ebook.setPadding(0, h_ebook, 0, 0);