3

我有一个简单的应用程序,它显示一个表格,下面显示一个带有图像的图像视图,该图像根据在表格上单击的行而变化。它在模拟器上工作并显示正常,但是当我将它安装在我的测试手机上时它没有显示。我的代码在这里:

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 布局的底部。关于如何调试它的任何帮助?

4

5 回答 5

1

这只是一个猜测,因为可能还有其他可能出错的地方 - 您是否在正确的资源文件夹中有可绘制对象?也许您在与模拟器相对应的drawable-mdpi或文件夹中有图像,而不是在与设备相对应的文件夹中。drawable-ldpidrawable-hdpi

要进行测试,建议您创建一个drawable文件夹(不带任何限定符)并将所有可绘制文件复制到该文件夹​​并检查您是否看到ImageView.

更新:

使用hierarchyviewer检查 UI 元素的属性。

于 2012-11-02T07:39:28.623 回答
1

我通过将图像更改为 png 格式并将它们缩小 50% 来解决它。不知道为什么会这样,但确实如此!

于 2012-11-02T12:30:37.573 回答
0

也许有点老了,但这个线程仍然帮助了我。我有同样的问题。在模拟器上,我的图像 JPG 完美显示。但是在我的手机上没有显示图像。

当我在 ImageView 上添加背景颜色时,我确实在手机上看到了颜色,但没有图像。

然后我缩小图像,从大约 2000 像素宽度到 1000 像素宽度。瞧……图像是可见的。

似乎有最大的图像分辨率。

于 2014-09-24T13:12:50.047 回答
0

图像视图根本没有显示吗?它似乎被切断了吗?尝试将 android:weight="1.0" 或您想要的任何数字设置为 imageview 或将整个内容放在滚动视图中。如果它被切断,这将解决问题。

还有另一个建议...

尝试将整个表格布局包装在线性布局中,并在最后拉出您的文本视图和图像视图。我不是 100% 确定,但我认为你只应该在表格布局内有表格行......但是因为它在模拟器上工作,所以不太确定。

-编辑-

试试这个(把你的textview和imageview放在一个tablerow中)......它可能会起作用。

<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>
于 2012-11-02T07:32:42.643 回答
0

在滚动视图中包含 xml 中的所有视图(布局本身除外)。也许你的手机屏幕高度不是太大。

于 2012-11-02T07:33:50.907 回答