2016-01-08 100 views
2

大家好,我是新到Android我試圖做一個計算器應用程序,當我在Android手機上運行我的應用程序,它看起來罰款:佈局錯誤的Android

previous layout

但是當我非凡的大腦認爲爲什麼不在按鈕中使用自定義文本,所以我在網上搜索它。但我無法在我的應用程序中使用它,所以在受挫時我從頭開始(刪除應用程序的上一個文件夾)。我將所有xml代碼粘貼到我的新文件中,並且還可以使用自定義文本。現在我的問題是,當我運行在Android設備的應用程序看起來像這樣:

enter image description here

這裏是應用程序的logcat的:

01-08 13:51:39.545 6067-6067/? D/dalvikvm: Late-enabling CheckJNI 
 
01-08 13:51:39.775 6067-6067/? D/ActivityThread: handleBindApplication:com.company.calculator 
 
01-08 13:51:39.775 6067-6067/? D/ActivityThread: setTargetHeapUtilization:0.75 
 
01-08 13:51:39.775 6067-6067/? D/ActivityThread: setTargetHeapMinFree:2097152 
 
01-08 13:51:39.865 6067-6067/com.company.calculator I/libthemeutils: Theme: libthemeutil.so load success 
 
01-08 13:51:39.875 6067-6067/com.company.calculator W/ActivityThread: Application com.company.calculator can be debugged on port 8100... 
 
01-08 13:51:39.895 6067-6067/com.company.calculator W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;) 
 
01-08 13:51:39.895 6067-6067/com.company.calculator I/dalvikvm: Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested 
 
01-08 13:51:39.895 6067-6067/com.company.calculator W/dalvikvm: VFY: unable to resolve interface method 14516: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z 
 
01-08 13:51:39.895 6067-6067/com.company.calculator D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002 
 
01-08 13:51:39.895 6067-6067/com.company.calculator I/dalvikvm: Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode 
 
01-08 13:51:39.895 6067-6067/com.company.calculator W/dalvikvm: VFY: unable to resolve interface method 14520: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode; 
 
01-08 13:51:39.895 6067-6067/com.company.calculator D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002 
 
01-08 13:51:39.895 6067-6067/com.company.calculator D/dalvikvm: GetMethodID: not returning static method Landroid/os/Process;.getTotalMemory()J 
 
01-08 13:51:39.895 6067-6067/com.company.calculator D/dalvikvm: GetMethodID: not returning static method Landroid/os/Process;.getFreeMemory()J 
 
01-08 13:51:40.005 6067-6067/com.company.calculator I/Adreno-EGL: <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: () 
 
                    OpenGL ES Shader Compiler Version: E031.24.02.07 
 
                    Build Date: 03/30/15 Mon 
 
                    Local Branch: 
 
                    Remote Branch: 
 
                    Local Patches: 
 
                    Reconstruct Branch: 
 
01-08 13:51:40.035 6067-6067/com.company.calculator D/OpenGLRenderer: Enabling debug mode 0 
 
01-08 13:51:40.075 6067-6067/com.company.calculator I/Timeline: Timeline: Activity_idle id: [email protected] time:44934479

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" 
 
    tools:context=".calculator_main"> 
 

 
    <RelativeLayout 
 
     android:background="#E0F2F1" 
 
     android:layout_height="wrap_content" 
 
     android:layout_width="wrap_content"> 
 

 
     <TextView 
 
      android:layout_width="wrap_content" 
 
      android:layout_height="wrap_content" 
 
      android:text="@string/txt_zero" 
 
      android:id="@+id/textView" 
 
      android:textSize="50sp" 
 
      android:layout_marginTop="102dp" 
 
      android:layout_alignParentTop="true" 
 
      android:layout_alignParentRight="true" 
 
      android:layout_alignParentEnd="true" /> 
 

 
     <RelativeLayout 
 
      android:background="#1DE9B6" 
 
      android:layout_height="match_parent" 
 
      android:layout_width="match_parent" 
 
      android:layout_alignRight="@+id/textView" 
 
      android:layout_alignEnd="@+id/textView" 
 
      android:layout_below="@+id/textView"> 
 

 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_clear" 
 
       android:layout_width="95dp" 
 
       android:layout_height="80dp" 
 
       android:text="@string/button_clear" 
 
       android:textSize="25sp" 
 
       android:layout_alignParentTop="true" 
 
       android:layout_alignParentLeft="true" 
 
       android:layout_alignParentStart="true"/> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_sub" 
 
       android:layout_width="95dp" 
 
       android:layout_height="80dp" 
 
       android:text="@string/button_sub" 
 
       android:textSize="45sp" 
 
       android:layout_alignTop="@+id/button_8" 
 
       android:layout_alignRight="@+id/button_mul" 
 
       android:layout_alignEnd="@+id/button_mul" /> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_div" 
 
       android:layout_width="95dp" 
 
       android:layout_height="80dp" 
 
       android:text="@string/button_div" 
 
       android:textSize="25sp" 
 
       android:layout_alignParentTop="true" 
 
       android:layout_toRightOf="@+id/button_del" /> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_del" 
 
       android:layout_width="99dp" 
 
       android:layout_height="80dp" 
 
       android:textSize="30sp" 
 
       android:text="@string/button_del" 
 
       android:layout_alignParentTop="true" 
 
       android:layout_toRightOf="@+id/button_clear" 
 
       android:layout_toEndOf="@+id/button_clear" /> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_mul" 
 
       android:layout_width="99dp" 
 
       android:layout_height="50dp" 
 
       android:text="@string/button_mul" 
 
       android:textSize="20sp" 
 
       android:layout_alignParentTop="true" 
 
       android:layout_toRightOf="@+id/button_div" 
 
       android:layout_toEndOf="@+id/button_div" 
 
       android:layout_above="@+id/button_sub" /> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_7" 
 
       android:layout_width="95dp" 
 
       android:layout_height="80dp" 
 
       android:text="@string/button_7" 
 
       android:textSize="25sp" 
 
       android:layout_below="@+id/button_clear" 
 
       android:layout_alignParentLeft="true" 
 
       android:layout_alignParentStart="true" /> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_8" 
 
       android:layout_width="95dp" 
 
       android:layout_height="80dp" 
 
       android:text="@string/button_8" 
 
       android:textSize="25sp" 
 
       android:layout_below="@+id/button_clear" 
 
       android:layout_toRightOf="@+id/button_7" 
 
       android:layout_alignRight="@+id/button_del" 
 
       android:layout_alignEnd="@+id/button_del" /> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_9" 
 
       android:layout_width="95dp" 
 
       android:layout_height="80dp" 
 
       android:text="@string/button_9" 
 
       android:textSize="25sp" 
 
       android:layout_below="@+id/button_div" 
 
       android:layout_toLeftOf="@+id/button_sub" 
 
       android:layout_toStartOf="@+id/button_sub" /> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_equals" 
 
       android:layout_width="95dp" 
 
       android:layout_height="wrap_content" 
 
       android:text="@string/button_equals" 
 
       android:textSize="40sp" 
 
       android:layout_below="@+id/button_4" 
 
       android:layout_alignLeft="@+id/button_add" 
 
       android:layout_alignStart="@+id/button_add" 
 
       android:layout_alignParentBottom="true" /> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_4" 
 
       android:layout_width="95dp" 
 
       android:layout_height="80dp" 
 
       android:text="@string/button_4" 
 
       android:textSize="25sp" 
 
       android:layout_below="@+id/button_7" 
 
       android:layout_alignParentLeft="true" 
 
       android:layout_alignParentStart="true" /> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_5" 
 
       android:layout_width="95dp" 
 
       android:layout_height="80dp" 
 
       android:text="@string/button_5" 
 
       android:textSize="25sp" 
 
       android:layout_alignTop="@+id/button_4" 
 
       android:layout_toRightOf="@+id/button_4" 
 
       android:layout_alignRight="@+id/button_8" 
 
       android:layout_alignEnd="@+id/button_8" /> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_6" 
 
       android:layout_width="95dp" 
 
       android:layout_height="80dp" 
 
       android:text="@string/button_6" 
 
       android:textSize="25sp" 
 
       android:layout_below="@+id/button_sub" 
 
       android:layout_toLeftOf="@+id/button_sub" 
 
       android:layout_toStartOf="@+id/button_sub" /> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_1" 
 
       android:layout_width="95dp" 
 
       android:layout_height="80dp" 
 
       android:text="@string/button_1" 
 
       android:textSize="25sp" 
 
       android:layout_below="@+id/button_4" 
 
       android:layout_alignParentLeft="true" 
 
       android:layout_alignParentStart="true" 
 
       android:layout_toLeftOf="@+id/button_2" 
 
       android:layout_toStartOf="@+id/button_2" /> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_add" 
 
       android:layout_width="95dp" 
 
       android:layout_height="80dp" 
 
       android:text="@string/button_add" 
 
       android:textSize="45sp" 
 
       android:layout_above="@+id/button_equals" 
 
       android:layout_alignLeft="@+id/button_sub" 
 
       android:layout_alignStart="@+id/button_sub" /> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_2" 
 
       android:layout_width="95dp" 
 
       android:layout_height="80dp" 
 
       android:text="@string/button_2" 
 
       android:textSize="25sp" 
 
       android:layout_below="@+id/button_6" 
 
       android:layout_toRightOf="@+id/button_clear" 
 
       android:layout_alignRight="@+id/button_5" 
 
       android:layout_alignEnd="@+id/button_5" /> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_3" 
 
       android:layout_width="95dp" 
 
       android:layout_height="80dp" 
 
       android:text="@string/button_3" 
 
       android:textSize="25sp" 
 
       android:layout_below="@+id/button_6" 
 
       android:layout_toLeftOf="@+id/button_equals" 
 
       android:layout_toStartOf="@+id/button_equals" /> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_0" 
 
       android:layout_width="wrap_content" 
 
       android:layout_height="90dp" 
 
       android:textSize="25sp" 
 
       android:text="@string/button_0" 
 
       android:layout_alignBottom="@+id/button_dot" 
 
       android:layout_alignParentLeft="true" 
 
       android:layout_alignParentStart="true" 
 
       android:layout_toStartOf="@+id/button_dot" 
 
       android:layout_alignRight="@+id/button_2" 
 
       android:layout_alignEnd="@+id/button_2" /> 
 

 
      <com.company.calculator.ButtonPlus 
 
       android:id="@+id/button_dot" 
 
       android:layout_width="wrap_content" 
 
       android:layout_height="90dp" 
 
       android:textSize="45sp" 
 
       android:text="@string/button_dot" 
 
       android:layout_alignParentBottom="true" 
 
       android:layout_toLeftOf="@+id/button_equals" 
 
       android:layout_alignLeft="@+id/button_3" 
 
       android:layout_alignStart="@+id/button_3"/> 
 

 
     </RelativeLayout> 
 

 

 
    </RelativeLayout> 
 
</RelativeLayout>

但我的Android Studio中XML佈局設計是這樣的:

XML layout design in Android Studio

那麼,請告訴我,我錯了&請幫我解決這個問題。 在此先感謝。

+2

您的xml將幫助... – Fustigador

+0

請添加您的xml文件代碼 –

+0

請指定您正在測試的設備可能在某些設備上它看起來像這樣,您可以使用預覽所有屏幕尺寸android studio的功能,它將顯示所有屏幕尺寸的佈局並可以識別問題。 –

回答

0

我還沒有回答爲什麼創建這個問題,但我有這樣的解決方法嘗試。 請放Button背景color

<Button android:id="@+id/button_clear" 
      android:layout_width="95dp" 
      android:layout_height="80dp" 
      android:background="#DCDDDD" 
      android:text="C" 
      android:textSize="25sp" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true"/> 

嘗試。

0

您正在爲按鈕的高度和寬度設置固定值。 Android Studio中的模擬器有足夠的空間在尊重它的同時正確表示它們,但您的設備看起來沒有。要正確安裝它們,請嘗試減小按鈕的大小。

如果你想在按鈕的大小來調整每個設備的屏幕大小,就可以得到該設備的屏幕大小是這樣的:

DisplayMetrics metrics; 
int width = 0, height = 0; 
metrics = new DisplayMetrics();   
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
height = metrics.heightPixels;  
width = metrics.widthPixels; 

,並做一些計算,以編程方式設置你的按鈕的大小。

+0

更好的是在xml中使用權重。 (imo) – Doomsknight

+0

@fustigador你能給我提供一些鏈接,以便我能正確理解 –

+0

它並不那麼難。在指標變量中,您可以設置應用運行的設備尺寸。如果您需要配置兩個按鈕,則可以將每個按鈕的寬度設置爲width/2。如果你需要三個按鈕,它應該是寬度/ 3等等。 – Fustigador

0

我找到了我剛纔在我的xml文件中使用的答案。

style="@style/Base.Widget.AppCompat.ActionButton" 

還改變了AVD管理器的一些設置。謝謝大家的貢獻