我是Android编程的新手,最近我发现我在我的应用程序中使用的许多图像导致OOM错误并导致我的app崩溃。所以马上删除了背景和所有图像的所有按钮和布局没有考虑任何事情,但后来意识到所有元素都已经超出了它们的位置,并被限制在一个具有非常低宽度的元素列表中,如下图所示,一个在另一个之下。
我如何安排他们 -
他们现在的样子 -
我试图将整个项目还原到以前的时间,包括那些没有用的图像。我已经做了一些事情,比如完全格式化并再次安装Android工作室,这根本没有帮助.I在Android工作室中已经多次遇到过这类问题,比如我有时会在相对布局中拖动一个元素,我会面临类似的问题,但这可以通过一个简单的撤销来解决。但这次我没想过这样做
所以如果有人知道相对布局中的元素存在什么问题。请帮帮我。 三江源。
完整的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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="3dp"
android:paddingLeft="3dp"
android:paddingRight="3dp"
android:paddingTop="3dp"
tools:context="com.androgeekzz.pokemongo_bestguidetipsandtricks.MainActivity"
android:background="@drawable/blues">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/scrollView3">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:layout_width="wrap_content"
android:layout_height="200dp"
android:id="@+id/imageView"
android:background="@drawable/pokecover"
android:layout_alignParentTop="true"
android:contentDescription="@string/cover" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_centerHorizontal="true"
android:id="@+id/linearla1"
android:layout_weight="1"
android:layout_below="@+id/imageView"
android:weightSum="2">
<Button
android:layout_width="170dp"
android:layout_height="170dp"
android:id="@+id/basics"
android:layout_below="@+id/imageView"
android:layout_marginTop="2dp"
android:onClick="basicsOnclick"
android:background="@drawable/pokebige" />
<Button
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_marginLeft="4dp"
android:id="@+id/advGuide"
android:layout_toRightOf="@+id/basics"
android:layout_below="@+id/imageView"
android:layout_marginTop="2dp"
android:onClick="advanceOnclick"
android:background="@drawable/pokadva" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:id="@+id/linearla2"
android:layout_centerHorizontal="true"
android:layout_weight="1"
android:layout_below="@+id/linearla1"
android:weightSum="2">
<Button
android:layout_width="170dp"
android:layout_height="170dp"
android:id="@+id/Tips"
android:layout_below="@+id/basics"
android:layout_marginTop="2dp"
android:onClick="tipsOnclick"
android:background="@drawable/pokettips" />
<Button
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_marginLeft="4dp"
android:id="@+id/Tricks"
android:layout_toRightOf="@+id/Tips"
android:layout_below="@+id/advGuide"
android:layout_marginTop="2dp"
android:onClick="tricksOnclick"
android:background="@drawable/poketrain" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:id="@+id/linearla3"
android:layout_centerHorizontal="true"
android:layout_weight="1"
android:layout_below="@+id/linearla2"
android:weightSum="2">
<Button
android:layout_width="170dp"
android:layout_height="170dp"
android:id="@+id/Resources"
android:layout_below="@+id/basics"
android:layout_marginTop="2dp"
android:onClick="resourceLinksOnclick"
android:background="@drawable/pokeres" />
<Button
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_marginLeft="4dp"
android:id="@+id/About"
android:layout_toRightOf="@+id/Tips"
android:layout_below="@+id/advGuide"
android:layout_marginTop="2dp"
android:onClick="aboutOnclick"
android:background="@drawable/pokabout" />
</LinearLayout>
</RelativeLayout>
</ScrollView>
答案 0 :(得分:0)
有问题sum(1 for x,y in zip(a,b) if x == y) / float(len(a))
对我来说很好。因为,它的宽度设置为ImageView
,只要没有设置图像,它就会为0。但是,如果您提供任何图像,它应相应扩展。理想情况下,就像我看来,它的宽度应该是wrap_content
,因为布局看起来最一致。
我还建议使用match_parent
或android:scaleType="center"
,因为在上图中,宽高比看起来并不理想。