我试图为Android制作一个Flashlight应用程序(绝对是初学者)
这个概念是让IronMan的胸灯成为闪光灯UI的切换按钮。
我将钢铁侠设为背景ImageView。并将胸部光照片设置为按钮的图像src。
问题在于,在不同的屏幕尺寸中,按钮的对齐方式会发生变化,如下面的屏幕截图所示。 这就是它的样子:
屏幕尺寸改变时按钮移位:
如果有人可以帮助我解决这个问题,那就太棒了。
我的XML代码,如果有任何帮助:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
tools:context="example.flash.flash">
<!-- view for AdMob Interstitial Ad -->
<TextView
android:id="@+id/app_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:text="@string/interstitial_ad_sample"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/level"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/app_title"
android:layout_centerHorizontal="true"
android:text="@string/start_level"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/next_level_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/next_level" />
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/iron"
android:id="@+id/imageView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<ImageButton
android:id="@+id/imageButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/colorBackground"
android:src="@drawable/onn"
android:scaleType="fitCenter"
android:layout_marginBottom="57dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_home_footer"></com.google.android.gms.ads.AdView>
</RelativeLayout>
答案 0 :(得分:0)
问题是您正在设计特定于一个设备/屏幕的布局。
来自文档 -
Android支持多种允许使用的配置限定符 控制系统如何根据选择您的替代资源 当前设备屏幕的特征。配置 qualifier是一个字符串,您可以将其附加到资源目录中 您的Android项目并指定其配置 里面的资源都是设计好的。
请参阅Different values folders in android,了解如何根据不同的屏幕制作不同的值/ dimens.xml。
因此,请创建不同的值文件夹并检查文档 - link
答案 1 :(得分:0)
您使用的是哪种父版面? 如果是RelativeLayout,则必须相对于彼此设置按钮。