对于我的项目我使用背景图片,所以我可以放入隐形按钮.. 但问题是当我在模拟器中打开活动时,它只是一个沙拉(文本视图与按钮等混合..)
<EditText
android:layout_width="200dp"
android:layout_height="wrap_content"
android:id="@+id/firstname"
android:inputType="text"
android:layout_marginTop="57dp"
android:layout_alignParentTop="true"
android:layout_alignLeft="@+id/lastname"
android:layout_alignStart="@+id/lastname" />
<EditText
android:layout_width="200dp"
android:layout_height="wrap_content"
android:id="@+id/lastname"
android:inputType="text"
android:layout_below="@+id/firstname"
android:layout_alignRight="@+id/spinner"
android:layout_alignEnd="@+id/spinner" />
<EditText
android:layout_width="230dp"
android:layout_height="wrap_content"
android:id="@+id/email"
android:inputType="text"
android:layout_below="@+id/lastname"
android:layout_alignRight="@+id/lastname"
android:layout_alignEnd="@+id/lastname" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:ems="10"
android:id="@+id/password"
android:layout_marginTop="35dp"
android:layout_below="@+id/email"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:ems="10"
android:id="@+id/confirmPasswordEditText"
android:layout_marginTop="35dp"
android:layout_below="@+id/password"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<EditText
android:layout_width="50dp"
android:layout_height="wrap_content"
android:inputType="text"
android:ems="10"
android:id="@+id/age"
android:layout_alignBottom="@+id/spinner"
android:layout_toLeftOf="@+id/imageViewUser"
android:layout_toStartOf="@+id/imageViewUser" />
<Spinner
android:layout_width="100dp"
android:layout_height="wrap_content"
android:id="@+id/spinner"
android:entries="@array/choose"
android:prompt="@string/genders"
android:layout_below="@+id/confirmPasswordEditText"
android:layout_toRightOf="@+id/confirmPasswordEditText"
android:layout_toEndOf="@+id/confirmPasswordEditText" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/joinus"
android:id="@+id/signUpButton"
android:layout_alignParentBottom="true"
android:layout_alignRight="@+id/spinner"
android:layout_alignEnd="@+id/spinner" />
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/imageViewUser"
android:layout_below="@+id/age"
android:layout_alignLeft="@+id/email"
android:layout_alignStart="@+id/email" />
答案 0 :(得分:1)
好的,我可以看到,你正在错误地使用布局ID。
例如,你有:
<EditText
android:layout_width="50dp"
android:layout_height="wrap_content"
android:inputType="text"
android:ems="10"
android:id="@+id/age"
android:layout_alignBottom="@+id/spinner"
android:layout_toLeftOf="@+id/imageViewUser"
android:layout_toStartOf="@+id/imageViewUser" />
说
的行android:layout_alignbottom="@+id/spinner"
应替换为
android:layout_alignbottom="@id/spinner"
没有&#39; +&#39;符号
这样,您就可以引用另一个布局而不是定义一个id值。
修改强> 以下是视图应该避免xml错误的示例:
<!-- This is the top-left-most layout in the view -->
<EditText
android:layout_width="50dp"
android:layout_height="wrap_content"
android:id="@+id/age" />
<!-- This layout will be shown BELOW the 'age' layout -->
<EditText
android:layout_width="50dp"
android:layout_height="wrap_content"
android:id="@+id/name"
android:layout_below="@id/age" />
<!-- This layout will be shown TO THE RIGHT OF the 'age' layout -->
<EditText
android:layout_width="50dp"
android:layout_height="wrap_content"
android:id="@+id/birthday"
android:layout_toRightOf="@id/age" />
现在,如果您尝试在@id/birthday
EditText视图中引用@id/age
,则会收到错误,因为布局还不了解@id/birthday
。它的定义低于@id/age
。
这有意义吗?
答案 1 :(得分:0)
@ Yasmin12,你好,我可以理解这里发生了什么,在你的布局“dp”引起了问题。使用“dip”代替它们将帮助您调试布局,因为它们会尝试将连贯的大小保持为多个屏幕分辨率,
<ImageView
android:id="@+id/avtar_animation_11"
android:layout_width="45dip"
android:layout_height="45dip"
android:src="@drawable/avtar011"/>
当你给尺寸提供“dp”时,支持多个屏幕的同时,实际上android希望你为不同的屏幕分辨率提供不同的值。让我们说下面是你的想象维度在你的android项目中的res文件夹中创建几个文件夹,如下所示
values-hdpi
,
values-mdpi
,
values-ldpi
,
values-xhdpi
,
values-xxhdpi
并在其中创建每个dimens.xml
文件并写入
<dimen name="image_view_width">28dp</dimen>
<dimen name="image_view_height">28dp</dimen>
现在我已经在这里提到了“dp”而不是dip想要我为不同的屏幕分辨率跟踪不同的尺寸,所以我将更改image_view_width和image_view_height值在单独的值文件夹中dimens.xml
是位于。确保您的dp值根据您希望视图适合的屏幕分辨率而变化。
<ImageView
android:id="@+id/avtar_animation_11"
android:layout_width="@dimen/image_view_width"
android:layout_height="@dimen/image_view_height"
android:src="@drawable/avtar011"/>
困难的部分现在已经结束了android将根据您的应用运行的屏幕选择dimens.xml
个值中的一个,现在您的布局晃动