我有一个简单的应用程序,显示一个表格,下面显示一个图像视图,其图像根据单击表格上的行而变化。它在模拟器上工作并显示正常但是当我在我的测试手机上安装它时它没有显示。我的代码在这里:
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 :(得分:1)
这只是猜测,因为可能存在其他可能出错的问题 - 您是否在正确的资源文件夹中有drawable?也许您在drawable-mdpi
或drawable-ldpi
文件夹中有与模拟器对应的图像,而不在与设备对应的drawable-hdpi
中。
要进行测试,建议您创建一个drawable
文件夹(没有任何限定符)并将所有可绘制文件复制到该文件夹,并检查是否看到ImageView
。
<强>更新强>
使用hierarchyviewer检查UI元素的属性。
答案 1 :(得分:1)
我通过将图像更改为png格式并使它们缩小50%来解决它。不知道为什么会起作用,但确实如此!
答案 2 :(得分:0)
图像视图是否显示不正确?它似乎是截止的吗?尝试将android:weight =“1.0”或您想要的任何数字设置为imageview,或将整个内容放在滚动视图中。这将解决问题,如果它被切断。
另一个建议......
尝试将整个表格布局包装在线性布局中,并在最后拉出文本视图和图像视图。我不是100%肯定,但我认为你只应该在表格布局中有表格行...但是因为它在模拟器上工作,不太确定。
-edit -
试试这个(把你的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>
答案 3 :(得分:0)
在scrollview中包含xml中的所有视图(布局本身除外)。也许你的手机屏幕高度不是太大。
答案 4 :(得分:0)
也许有点老了,但这个帖子仍然帮助了我。我有同样的问题。在模拟器上,我的图像JPG完美呈现。但是在我的手机上没有显示图像。
当我在ImageView上添加背景颜色时,我确实看到手机上的颜色,但没有图像。
然后我缩小了图像,从大约2000像素宽到1000像素宽。瞧......图像是可见的。
似乎有最大的图像分辨率。