2014-02-09 12 views
5

Это приложение должно отображать изображения, в которых учащиеся могут подсчитать, какие деньги стоят в общей сложности, а затем ввести значение в текстовое поле editText, которое затем сравнивается с сохраненным значением. К сожалению, когда я пытаюсь переключить действия за определенный момент (есть 11 активных действий, причем три из них отображают изображения в порядке), изображения начинают размываться, и монеты трудно отличить друг от друга. Я не знаю, является ли это ошибкой Java или XML, однако я вставил код ниже. Ниже приведен код XML.Изображение просматривается размытым

<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

Кажется, что он собирал значки, которые не были предназначены для конкретного размера экрана. Вы можете исправить это, перейдя в рабочую область и удалив все иконки, которые являются любой другой папкой, кроме «drawable». (За исключением значка ic_launcher, так как это тот, который позволяет отображать ваше приложение в меню приложения Android и не будет размытым.)

2

Лучше, чем ваше решение должно было убедиться в том, что файл разрешения находится в каждой папке. Правильное разрешение вашего требуемое разрешение со следующими мультипликаторами, как показано на Android Design documents:

enter image description here

+0

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