【问题标题】:Why do I get the error while doing GridView? Eclipse fails to recognize the resource images为什么在执行 GridView 时会出现错误? Eclipse 无法识别资源图像
【发布时间】:2012-04-01 15:33:44
【问题描述】:

错误 - 市场无法解析或不是字段。 新闻无法解析或不是字段。 天气无法解析或不是字段。

我正在 GridView 上尝试一个示例。我将名为 Market、News 和 Weather 的图像添加到 res>>drawable-mdpi>> 文件夹。但是 Eclipse 无法识别它。图片为 *jpeg * 格式。可能有什么问题?你能帮忙吗?我在这里发布代码

public class MainActivity extends Activity 
{
    // Images to display-----------------------//
    Integer[] imageIds = {
            R.drawable.Market,
            R.drawable.News,
            R.drawable.Weather
    };
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        GridView gridView = (GridView) findViewById(R.id.gridview);// Bring gridView into context from main.xml
        gridView.setAdapter(new ImageAdapter(this)); 

        gridView.setOnItemClickListener(new OnItemClickListener()
        {
        public void onItemClick(AdapterView<?> parent,
        View v, int position, long id)
        {
            Toast.makeText(getBaseContext(), "pic " + (position + 1) + " selected",        Toast.LENGTH_SHORT).show();
        }
        });
     }

    public class ImageAdapter extends BaseAdapter
    {
        private Context context; // Context class object - context

        public ImageAdapter(Context c)
        {
            context = c;
        }

        //return number of images
        public int getCount()
        {
            return imageIds.length;
        }

        public Object getItem(int position)     // return type of getItem method is an Object
        {
            return position;
        }

        public long getItemId(int position)
        {
            return position;
        }

        //returns an ImageView view--------------
        public View getView(int position, View convertView, ViewGroup parent)
        {
            ImageView imageView;
            if(convertView == null)
            {
                imageView = new ImageView(context);
                imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
                imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                imageView.setPadding(5, 5, 5, 5);
            }
            else
            {
                imageView = (ImageView) convertView;
            }
            imageView.setImageResource(imageIds[position]);
            return imageView;
        }       
    }    
}

【问题讨论】:

  • 如果您的问题得到解决,您需要接受@Boris 或其他任何人的回答。

标签: android android-gridview


【解决方案1】:

我尝试创建一个名为 Weather 的资源(一张图片放在 drawable-mdpi),然后我得到了

res\drawable-mdpi\Weather.jpg:文件名无效:必须仅包含 [a-z0-9_.]

在 Eclipse 中。我认为资源名称应该是蛇形的,但我发现这个thread 那里的家伙说骆驼案也可以。这意味着唯一的限制是首字母不能大写。

【讨论】:

  • 鲍里斯很好的答案。它有帮助。谢谢
【解决方案2】:

//没有大写,只有小

将可绘制图像更改为小写字母

android 将支持 a-z,0-9, _

【讨论】:

  • @padma-kumar: 只是让你知道:这并不完全正确,只是第一个字母不允许大写。
【解决方案3】:

在您的代码中替换以下行

整数[] imageIds = { R.drawable.Market, R.drawable.News, R.drawable.Weather };

整数[] imageIds = { R.drawable.market, R.drawable.news, R.drawable.weather };

还可以更改可绘制文件夹中的图像名称。

【讨论】:

    猜你喜欢
    • 2010-10-14
    • 1970-01-01
    • 2023-03-17
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-22
    相关资源
    最近更新 更多