我是新手,所以我不知道我是否做得对 我刚刚从市场上下载了一个应用程序,它不适合我的屏幕(ldpi 240x320)高度...底部的一些按钮不会出现。 所以我搜索了一些信息并尝试了一切...... 这是layout / Main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher">
<LinearLayout android:orientation="vertical" android:id="@id/LLImage" android:layout_width="fill_parent" android:layout_height="wrap_content" android:adjustViewBounds="true" android:minHeight="100.0dip"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher">
<RelativeLayout android:id="@id/drag_layer" android:layout_width="fill_parent" android:layout_height="370.0dip" android:adjustViewBounds="true" android:minHeight="100.0dip">
<ImageView android:id="@id/imageViewContainer" android:layout_width="fill_parent" android:layout_height="370.0dip" android:src="@drawable/backgsammi" android:scaleType="matrix" android:adjustViewBounds="true" android:minHeight="100.0dip" />
<ImageView android:id="@id/imageWatermark" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/watermark" android:layout_alignParentRight="true" />
</RelativeLayout>
</LinearLayout>
<LinearLayout android:orientation="vertical" android:id="@id/mainLLauout" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher">
<LinearLayout android:gravity="center_horizontal" android:orientation="horizontal" android:background="@drawable/background" android:layout_width="fill_parent" android:layout_height="50.0dip"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageButton android:padding="0.0px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="3.0dip" android:src="@drawable/open" android:text="Select Picture" android:onClick="openGallery" />
<ImageButton android:padding="0.0px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="3.0dip" android:src="@drawable/cat" android:text="Choose Cat" android:onClick="chooseCat" />
<ImageButton android:id="@id/btnFlip" android:padding="0.0px" android:longClickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="3.0dip" android:src="@drawable/rotate" android:onClick="rotateImage" />
<ImageButton android:padding="0.0px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="3.0dip" android:src="@drawable/eraser" android:onClick="eraseImage" />
<ImageButton android:id="@id/btnSave" android:padding="0.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="3.0dip" android:src="@drawable/save" android:text="Save" android:onClick="saveToGallery" />
<ImageButton android:padding="0.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="3.0dip" android:src="@drawable/help" android:text="Save" android:onClick="openHelp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
我想这是因为“android:layout_height =”370.0dip“” - 它应该更小。但是当我尝试在eclipse上将其更改为“360”或“fill_parent”时,请登录apk,安装在手机上并尝试打开应用程序,它会崩溃。我错过了什么吗?我只是想让app适合我的手机屏幕
抱歉英语不好和那个愚蠢的问题
05-16 18:21:30.796: W/dalvikvm(11715): threadid=1: thread exiting with uncaught exception (group=0x40018560)
05-16 18:21:31.306: E/AndroidRuntime(11715): FATAL EXCEPTION: main
05-16 18:21:31.306: E/AndroidRuntime(11715): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.addacat.addacat/com.addacat.addacat.AddaCatActivity}: java.lang.ClassNotFoundException: com.addacat.addacat.AddaCatActivity in loader dalvik.system.PathClassLoader[/data/app/com.addacat.addacat-2.apk]
05-16 18:21:31.306: E/AndroidRuntime(11715): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1680)
05-16 18:21:31.306: E/AndroidRuntime(11715): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784)
05-16 18:21:31.306: E/AndroidRuntime(11715): at android.app.ActivityThread.access$1500(ActivityThread.java:123)
05-16 18:21:31.306: E/AndroidRuntime(11715): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939)
05-16 18:21:31.306: E/AndroidRuntime(11715): at android.os.Handler.dispatchMessage(Handler.java:99)
05-16 18:21:31.306: E/AndroidRuntime(11715): at android.os.Looper.loop(Looper.java:130)
05-16 18:21:31.306: E/AndroidRuntime(11715): at android.app.ActivityThread.main(ActivityThread.java:3835)
05-16 18:21:31.306: E/AndroidRuntime(11715): at java.lang.reflect.Method.invokeNative(Native Method)
05-16 18:21:31.306: E/AndroidRuntime(11715): at java.lang.reflect.Method.invoke(Method.java:507)
05-16 18:21:31.306: E/AndroidRuntime(11715): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
05-16 18:21:31.306: E/AndroidRuntime(11715): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
05-16 18:21:31.306: E/AndroidRuntime(11715): at dalvik.system.NativeStart.main(Native Method)
05-16 18:21:31.306: E/AndroidRuntime(11715): Caused by: java.lang.ClassNotFoundException: com.addacat.addacat.AddaCatActivity in loader dalvik.system.PathClassLoader[/data/app/com.addacat.addacat-2.apk]
05-16 18:21:31.306: E/AndroidRuntime(11715): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
05-16 18:21:31.306: E/AndroidRuntime(11715): at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
05-16 18:21:31.306: E/AndroidRuntime(11715): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
05-16 18:21:31.306: E/AndroidRuntime(11715): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
05-16 18:21:31.306: E/AndroidRuntime(11715): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1672)
05-16 18:21:31.306: E/AndroidRuntime(11715): ... 11 more
一
package com.addacat.addacat;
import android.app.Activity;
import android.os.Bundle;
public class AddaCatActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// TODO Auto-generated method stub
}
}
所有内容都在AddaCatActivity.java
上答案 0 :(得分:0)
我使用20px x 20px图像代替您的图像在虚拟应用中测试了您的布局。当我将这些高度从370dip更改为fill_parent时,它不会崩溃。
当它连接到Eclipse时,您确实需要在模拟器上或手机上运行应用程序。您需要能够看到LogCat。它可能会让你很好地了解原因可能是什么。
编辑:
现在您已修复了应用崩溃问题,您应该查看this页面。它提供了许多如何构建布局的示例。
现在,你有:
<LinearLayout>
<LinearLayout> // Unused
<RelativeLayout>
<ImageView />
<ImageView />
</RelativeLayout>
</LinearLayout>
<LinearLayout> // Unused
<LinearLayout>
<ImageButton />
<ImageButton />
<ImageButton />
<ImageButton />
<ImageButton />
<ImageButton />
</LinearLayout>
</LinearLayout>
</LinearLayout>
此时,至少有两个LinearLayout块看起来未使用。这是一个我认为你想要的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RelativeLayout
android:id="@+id/drag_layer"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:adjustViewBounds="true"
android:minHeight="100.0dip" >
<ImageView
android:id="@+id/imageViewContainer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/backgsammi"
android:scaleType="fitCenter"
android:adjustViewBounds="true" />
<ImageView
android:id="@+id/imageWatermark"
android:visibility="invisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/watermark"
android:layout_alignParentRight="true" />
</RelativeLayout>
<LinearLayout
android:orientation="horizontal"
android:id="@+id/mainLLauout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0" >
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/open" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/cat" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/rotate" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/eraser" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/save" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/help" />
</LinearLayout>
</LinearLayout>
答案 1 :(得分:0)
关于像素大小: 1dp仅在mdpi上等于1px。 在ldpi上,1dp =(1 + 1/3)px。 那是因为:mdpi是160dpi,ldpi是120dpi。
这意味着如果您的屏幕是240x320并且您在“layout”文件夹中使用了dp的尺寸(如果没有专门编写,则用于mdpi),370dp~493像素。这超过了您的屏幕宽度或高度。
阅读此内容以获取更多信息: http://developer.android.com/guide/practices/screens_support.html
关于错误本身:,似乎该应用无法找到您要启动的活动,可能是因为您重命名了它或者您已将其放在其他位置。
您需要确保您的活动位于带有正确路径的清单上。要完全确定路径是否正常,请在清单上放置活动的完整路径,而不是以“。”开头。然后是活动的名称。例如:
<activity android:name="com.my_awesome_app.MyAwesomeActivity" ...