2013-04-16 2 views
0

Я только начал заниматься программированием приложений для Android, и я все изучаю в Интернете. Но когда это происходит, довольно сложно понять каждый из примеров и методов. Во всяком случае, я попытался создать приложение, которое при нажатии кнопки показывает таймер обратного отсчета, отсчитывающий от 3 до 1, а затем открывает ImageView.Мое приложение падает, когда я запускаю его на своем телефоне

Я определил TextView (для обратного отсчета), кнопку и изображение в своем макете XML, но приложение потерпит крах, когда я попробую его на своем телефоне. Я удалил изображение и теперь он запустил , как и должен, и когда я нажимаю кнопку, отображается обратный отсчет.

BTW, когда я нажимаю кнопку «Графическая компоновка», изображение отображается там.

Есть ли что-то не так с моей кодировкой 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=".MainActivity" > 

<Button 
    android:id="@+id/btn1" 
    android:text="@string/btnMessage" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" />" 


<ImageView 
    android:id="@+id/idrink" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_below="@id/btn1" 
    android:src="@drawable/idrink" 
    android:contentDescription="Underwater Drinking"/> 

<TextView 
    android:id="@+id/tview" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignTop="@+id/iview" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="126dp" 
    android:textSize="50sp" 
    android:visibility="invisible" /> 

+0

Ваш XML кажется нормально. Можете ли вы предоставить исключение, которое вы получаете, и некоторый код? – Aballano

+0

Вы не представляете, насколько я плохо себя чувствую по этому поводу, но я не знаю, что такое исключение, и где я его получаю :( Но это говорит мне, когда я открываю приложение, которое «К сожалению, Press Here is stop» protected аннулированию OnCreate (Пачка savedInstanceState) { \t \t super.onCreate (savedInstanceState); \t \t setContentView (R.layout.activity_main); \t \t \t \t \t БТН = (кнопка) findViewById (R.id.btn1) ; \t \t eText = (TextView) findViewById (R. id.tview); \t \t \t \t btn.setOnClickListener (новый View.OnClickListener() { \t \t \t общественного недействительными OnClick (View v) { \t \t \t \t eText.setVisibility (0); \t \t \t \t showTimer (4000) ; \t \t \t \t \t \t \t} \t \t}); \t} – sid802

+0

И в логарифме он говорит: 04-16 10: 27: 24.069: E/AndroidRuntime (792): вызвано: java.lang.OutOfMemoryError – sid802

ответ

2

Я думаю, что проблема может быть ImageView вы пытаетесь установить слишком большой. Какое разрешение и размер имеют изображение «idrink»?

+0

5184x3456 5 MB и что вы говорите на самом деле имеет смысл: D Это было сделано с профессиональной камерой lol. поэтому, если я хочу использовать эту фотографию, мне нужно найти способ сделать это самостоятельно или есть что-то в затмении, которое делает это для меня? – sid802

+0

@ sid802 Проверьте ссылку под загрузкой уменьшенной версии в память http://developer.android.com/training/displaying-bitmaps/load-bitmap.html – Raghunandan

+0

Вы должны изменить размер до меньшего размера, используя любую программу, которая вам нравится как Photoshop , Я думаю, что Eclipse не может сделать это за вас. – Aballano

0

Утечка памяти происходит, когда приложение сохраняет все больше ссылок на объекты и никогда не выпускает их.

попробуйте изменить размер изображения, прежде чем добавлять его в макет.

вы можете сделать это, как показано ниже

int hgt = yourvalue; // both the values should be in pixels 
int wdt = yourvalue; // 
Bitmap scaled = Bitmap.createScaledBitmap(largeBitmap, hgt, wdt, true); 

я думаю, что это решит вашу проблему ...

Смежные вопросы