2012-11-02 96 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宽度。瞧,图像是可见的。

看起来有最大的图像分辨率。

相关问题