【发布时间】:2016-06-23 14:22:33
【问题描述】:
我无法让元素在 Android Studio 中的布局上正确定位。我有一个带有包含数字 2 的 png 背景的 ImageView。我有两个视图,每个视图都包含一个小圆圈。我希望圆圈始终在数字二的每个尖端对齐。我可以在一台设备上正确对齐它们,但在另一台设备上对齐会发生变化。是否有可能使这些在每个设备中始终正确对齐?
这是我想要的样子: http://i.stack.imgur.com/v7nsg.png
这是我计算点位置之一的代码:
circle2 = findViewById(R.id.circle2);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int heightPixels = metrics.heightPixels;
int widthPixels = metrics.widthPixels;
//dimensions of background image: 547x839
dot2H = (heightPixels / 547) * 70;
dot2W = (widthPixels / 829) * 70;
dot2Hposition = (heightPixels / 829) * 500;
dot2Wposition = (widthPixels / 547) * 300;
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) circle2.getLayoutParams();
params.height = dot2H;
params.width = dot2H;
params.leftMargin = dot2Wposition;
params.topMargin = dot2Hposition;
circle2.setLayoutParams(params);
这是布局代码:
<?xml version="1.0" encoding="utf-8"?>
<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"
android:background="@drawable/bg"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="net.beauvine.animationtest.MainActivity"
tools:showIn="@layout/activity_main">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="centerInside"
android:src="@drawable/two"
android:id="@+id/imageView"
android:padding="10dp"
android:layout_alignParentEnd="false"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true" />
<RelativeLayout
android:id="@+id/dotLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:gravity="center"
>
<View android:layout_width="70dp"
android:layout_height="70dp"
android:id="@+id/circle2"
android:background="@drawable/circle"
android:clickable="true"
android:alpha=".8"
/>
<View android:layout_width="70dp"
android:layout_height="70dp"
android:id="@+id/circle"
android:background="@drawable/circle"
android:clickable="true"
android:alpha=".8"
/>
</RelativeLayout>
【问题讨论】:
标签: android android-layout android-studio