2014-02-09 119 views
5

這個應用程序應該顯示的圖像,其中學生可以計算出總共值多少錢,然後在editText文本框中輸入值,然後將該值與存儲值進行比較。不幸的是,當我嘗試切換活動超過某個點時(有11個活動活動,其中三個顯示圖像很好),圖像開始模糊,硬幣難以彼此區分。我不知道這是Java還是XML錯誤,但是我粘貼了下面的代碼。以下是XML代碼。Imageview變得模糊

<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="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".Ldsm" > 

<LinearLayout 
    android:id="@+id/linearLayout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:orientation="vertical" > 

    <Button 
     android:id="@+id/submitButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/submit" /> 
</LinearLayout> 

<TextView 
    android:id="@+id/userQuestion" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/linearLayout" 
    android:layout_alignLeft="@+id/userAnswer" 
    android:layout_marginBottom="30dp" 
    android:text="@string/how_many_coins_total" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<EditText 
    android:id="@+id/userAnswer" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/linearLayout" 
    android:layout_alignParentLeft="true" 
    android:layout_marginLeft="16dp" 
    android:ems="10" 
    android:inputType="number" > 

    <requestFocus /> 
</EditText> 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/userQuestion" 
    android:layout_alignParentTop="true" 
    android:layout_marginLeft="50dp" 
    android:layout_marginTop="118dp" > 

</LinearLayout> 

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/userQuestion" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_alignRight="@+id/linearLayout" 
    android:src="@drawable/ic_coin4" /> 

這僅僅是7個屏幕時,他們顯示圖像看起來模糊的一個。以下是同一活動的Java代碼。

package com.example.ldsm3; 

import android.os.Bundle; 
import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import com.example.ldsm3.Problem5; 

public class Problem4 extends Activity 
{ 
private final int COIN3_SCREEN_ANSWER = 95; 

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_problem4); 

    Button submitButton = (Button)findViewById(R.id.submitButton); 
    submitButton.setOnClickListener(submitButtonListener); 
} 

public boolean onCreateOptionsMenu(Menu menu) 
{ 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

private OnClickListener submitButtonListener = new OnClickListener() 
{ 
    public void onClick(View arg0) 
    { 
     EditText editText = (EditText)findViewById(R.id.userAnswer); 
     int userAnswerValue = Integer.parseInt(editText.getText().toString()); 

     // Build the Alert Dialog 
     android.app.AlertDialog.Builder alert = new AlertDialog.Builder(Problem4.this); 
     alert.setTitle("Answer"); 
     alert.setCancelable(false); 
     if(userAnswerValue == COIN3_SCREEN_ANSWER) 
     { 
      alert.setMessage("Congratulations!!!"); 
     } 
     else 
     { 
      alert.setMessage("Sorry, that's not right."); 
     } 
     alert.setPositiveButton("OK",new DialogInterface.OnClickListener() 
     { 
      public void onClick(DialogInterface dialog,int id) 
      { 
       Intent nextCoinScreenIntent = new Intent(Problem4.this, Problem5.class); 
       startActivity(nextCoinScreenIntent); 
      } 
     }); 
     alert.show(); 

    } 


}; 

    } 

而且當它在Nexus 10上運行此截圖:

enter image description here

請讓我知道是否需要任何更多的信息。

回答

3

它看起來像是在提取未針對特定屏幕尺寸設計的圖標。您可以通過轉到工作區並刪除除「可繪製」之外的任何其他文件夾中的每個圖標來修復此問題。 (ic_launcher圖標除外,因爲它允許您在Android應用程序菜單中顯示您的應用程序,並且不會模糊)。

2

比您的解決方案更好地確保正確的解析文件在每個文件夾中。妥善解決與以下乘數所需的分辨率,在Android Design documents如圖所示:

enter image description here

+0

http://stackoverflow.com/questions/34960124/how-to-add-images/34960342#34960342 –