2012-11-02 37 views
3

我有一個簡單的應用程序,顯示一個表格和下面,顯示一個圖像的圖像,根據在表格上單擊的行更改。它的工作原理和在模擬器上顯示的很好,但是當我將它安裝在我的測試手機上時,它不顯示。我的代碼是在這裏:imageview出現在模擬器,但不是在測試手機

package com.coreservlets.widgets; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ImageView; 
import android.widget.TableRow; 
import com.welly.keychords.R; 

public class keya extends Activity 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.keya); 
    } 

    public void rowClick(View view) { 
     ImageView imagev = (ImageView) findViewById(R.id.imageView1); 
     switch(view.getId()) { 
     case R.id.one: 
      imagev.setImageResource(R.drawable.achord); 
      break; 
     case R.id.two: 
      imagev.setImageResource(R.drawable.bminor); 
      break; 
     case R.id.three: 
      imagev.setImageResource(R.drawable.csharpdbminor); 
      break; 
     case R.id.four: 
      imagev.setImageResource(R.drawable.dchord); 
      break; 
     case R.id.five: 
      imagev.setImageResource(R.drawable.echord); 
      break; 
     case R.id.six: 
      imagev.setImageResource(R.drawable.fsharpgbminor); 
      break; 
     case R.id.seven: 
      imagev.setImageResource(R.drawable.gsharpdim); 
      break; 
     } 
    } 
} 

我的XML代碼是在這裏:

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#FF909090" 
    android:stretchColumns="1" > 

    <TableRow 
    android:id="@+id/one" 
    android:onClick="rowClick"> 

     <TextView 
      android:layout_margin="2dip" 
      android:layout_marginRight="2dip" 
      android:background="#0000ff" 
      android:padding="3dip" 
      android:text="I" /> 

     <TextView 
      android:layout_margin="2dip" 
      android:layout_marginLeft="1dip" 
      android:background="#0000ff" 
      android:gravity="center" 
      android:padding="3dip" 
      android:text="A" 
      /> 
    </TableRow> 

    <TableRow 
     android:id="@+id/two" 
    android:onClick="rowClick"> 

     <TextView 
      android:layout_column="0" 
      android:layout_margin="2dip" 
      android:background="#0000ff" 
      android:padding="3dip" 
      android:text="II" /> 

     <TextView 
      android:layout_margin="2dip" 
      android:background="#0000ff" 
      android:gravity="center" 
      android:padding="3dip" 
      android:text="Bm" /> 
    </TableRow> 

    <TableRow 
     android:id="@+id/three" 
    android:onClick="rowClick"> 

     <TextView 
      android:layout_column="0" 
      android:layout_margin="2dip" 
      android:background="#0000ff" 
      android:padding="3dip" 
      android:text="III" /> 

     <TextView 
      android:layout_margin="2dip" 
      android:background="#0000ff" 
      android:gravity="center" 
      android:padding="3dip" 
      android:text="C#m" /> 
    </TableRow> 

    <View 
     android:layout_height="2dip" 
     android:background="#FF909090" /> 

    <TableRow android:background="#0000ff" > 
    </TableRow> 

    <TableRow 
     android:id="@+id/four" 
    android:onClick="rowClick"> 

     <TextView 
      android:layout_margin="2dip" 
      android:background="#0000ff" 
      android:padding="3dip" 
      android:text="IV" /> 

     <TextView 
      android:layout_margin="2dip" 
      android:background="#0000ff" 
      android:gravity="center" 
      android:padding="3dip" 
      android:text="D" /> 
    </TableRow> 

    <View 
     android:layout_height="2dip" 
     android:background="#FF909090" /> 

    <TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 
    </TableRow> 

    <TableRow 
     android:id="@+id/five" 
    android:onClick="rowClick"> 

     <TextView 
      android:layout_margin="2dip" 
      android:layout_marginRight="2dip" 
      android:background="#0000ff" 
      android:padding="3dip" 
      android:text="V" /> 

     <TextView 
      android:layout_margin="2dip" 
      android:layout_marginLeft="1dip" 
      android:background="#0000ff" 
      android:gravity="center" 
      android:padding="3dip" 
      android:text="E" /> 
    </TableRow> 

    <TableRow 
     android:id="@+id/six" 
    android:onClick="rowClick"> 

     <TextView 
      android:layout_margin="2dip" 
      android:layout_marginRight="2dip" 
      android:background="#0000ff" 
      android:padding="3dip" 
      android:text="VI" /> 

     <TextView 
      android:layout_margin="2dip" 
      android:layout_marginLeft="1dip" 
      android:background="#0000ff" 
      android:gravity="center" 
      android:padding="3dip" 
      android:text="F#m" /> 
    </TableRow> 

    <TableRow 
     android:id="@+id/seven" 
    android:onClick="rowClick"> 

     <TextView 
      android:layout_margin="2dip" 
      android:layout_marginRight="2dip" 
      android:background="#0000ff" 
      android:padding="3dip" 
      android:text="VII" /> 

     <TextView 
      android:layout_margin="2dip" 
      android:layout_marginLeft="1dip" 
      android:background="#0000ff" 
      android:gravity="center" 
      android:padding="3dip" 
      android:text="G#dim" /> 
    </TableRow> 





    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="114dp" 
     android:background="#000000" 
     android:maxLines="10" 
     android:text="The relative minor of the Major key of A is F#m. The 12 bar blues progression in A is: \n A | A | A | A | D | D | A | A | E | D | A | E" /> 





    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:background="#ffffff" /> 

</TableLayout> 

的ImageView的代碼是正確的XML佈局的底部。有關如何調試的幫助?

+0

我將imageview的背景更改爲白色,嘗試查看視圖是否出現在手機上,但圖像未加載,仍然沒有任何結果。沒有白色的盒子imageview應該已經 – user1505181

+0

嘗試降低你的文本視圖的高度imageview –

+0

@ user1505181你可以提供一些你的設備和模擬器(密度,分辨率)更多的設置?爲了測試目的,嘗試將layout_width設置爲某​​個靜態值(IE 128dp)。此外,你的drawables是/ res/drawable還是它有任何限定符(例如drawable-hdpi)?當你把imageview放在一個單獨的佈局中時會發生什麼?(例如,作爲根的一個線性佈局與兒童,tablelayout和與textview和imageview的相關佈局)?點擊是否已註冊(可能是,但仍值得檢查)? – stealthjong

回答

0

圖像視圖是不是顯示?它似乎被截斷?嘗試設置android:weight =「1.0」或任何你想要的圖像視圖的數字,或把整個事情放在滾動視圖。這將解決問題,如果它被切斷。

也是另一個建議...

嘗試包裹的線性佈局內整個表格的佈局,並在最後拔出你的文本視圖和圖像視圖。我不是100%確定的,但我認爲你只應該在表格佈局中使用表格行......但是因爲它在模擬器上工作,所以不太確定。

CNC中

試試這個(把你的tablerow的的TextView和ImageView的)......它可能工作。

<TableRow> 
<TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="114dp" 
     android:background="#000000" 
     android:maxLines="10" 
     android:text="The relative minor of the Major key of A is F#m. The 12 bar blues progression in A is: \n A | A | A | A | D | D | A | A | E | D | A | E" /> 
</TableRow> 

<TableRow> 
    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:background="#ffffff" /> 
</TableRow> 
+0

這是我的設備截圖:http://i111.photobucket.com/albums/n123/welly_59/Screenshot_2012-11-02-07-34-21.png – user1505181

+0

這是模擬器的截圖:http:/ /i111.photobucket.com/albums/n123/welly_59/emu.png – user1505181

+0

剛剛編輯我的答案,不太確定,但我認爲它值得一試。順便說一句,你在模擬器和你的設備上運行什麼版本? – hjm

0

包含scrollview中xml中的所有視圖(佈局除外)。也許你的手機屏幕高度不是太大。

+0

我該怎麼做? – user1505181

+0

我正在測試一個三星Galaxy S2,它比我正在運行的模擬器的屏幕尺寸大 – user1505181

1

這只是一個猜測,因爲可能有其他的東西可能會出錯 - 你是否在正確的資源文件夾中有drawables?也許您在drawable-mdpidrawable-ldpi文件夾中對應於仿真器的圖像,而不是對應於該設備的drawable-hdpi

要測試,建議您創建一個drawable文件夾(不含任何限定符),並將所有可繪製文件複製到該文件夾​​,並檢查您是否看到ImageView

更新:

使用hierarchyviewer檢查UI元素的屬性。

+0

所有文件都只能繪製。雖然我不認爲問題與資源有關,但正如我所說,我已將imageview的背景設置爲白色,所以即使沒有裝入圖片,它也應該出現在屏幕上 – user1505181

+0

僅當ImageView具有背景顏色時纔會顯示背景顏色大小。如果沒有可繪製的圖像,ImageView的大小爲0,因此不會看到任何顏色。 – Rajesh

+0

嗯好的謝謝你的信息。圖像的尺寸爲217 x 217,這可能與它有關嗎? – user1505181

1

我通過將圖像更改爲png格式並將它們縮小50%來解決此問題。不知道爲什麼這有效,但它確實!

0

也許有點老,但這個線程仍然幫助我。我有同樣的問題。在模擬器上,我的圖像JPG完美呈現。但在我的手機上沒有顯示圖像。

當我在我的ImageView上放置背景色時,我看到手機上的顏色,但沒有圖像。

然後我按比例縮小圖像,從2000px寬度到1000px寬度。瞧,圖像是可見的。

看起來有最大的圖像分辨率。

相關問題