【发布时间】:2016-06-24 11:48:12
【问题描述】:
我想将我的 ImageView 放置在 Android Studio 中,这样它就可以在 Android 手机的多种屏幕尺寸中位于同一个位置(按比例)。
这是我在activity_main.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: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="com.slippysam.sooper_fly.slippysam.MainActivity"
android:background="@drawable/bgday">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxHeight="40dp"
android:maxWidth="40dp"
android:adjustViewBounds="true"
android:src="@drawable/sam"
android:id="@+id/samm"
/>
</RelativeLayout/>
这是我在Activity.java中尝试使用的一个函数
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
positionSam();
}
public void positionSam(){
final ImageView sam = (ImageView)findViewById(R.id.samm);
DisplayMetrics dm = getApplicationContext().getResources().getDisplayMetrics();
float dpHeight = dm.heightPixels / dm.density;
float dpWidth = dm.widthPixels / dm.density;
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) sam.getLayoutParams();
lp.leftMargin = (int) ((dpWidth * 0.5));
lp.topMargin = (int) ((dpHeight * 1.0555));
sam.setLayoutParams(lp);
}
}
这个函数确实改变了我的 ImageView 的位置,但是当我在产品之间切换时它的位置仍然不具体。
【问题讨论】:
-
请包括整个布局。
-
@ChrisWilson 完成 :)
-
请指定像gravity="center"这样的位置或者你想要的RelativeLayout。让我知道它是否有效。
-
为什么要从 java 文件中设置图像视图,而不是您可以轻松地在 xml 文件中的布局中设置图像视图。
-
@AbdulAleemAkhund 我不想让我的 ImageView 居中我希望它从底部的高度是整个屏幕的 1/3。
标签: java android xml android-studio imageview