Почему я получаю ошибку при выполнении GridView?Eclipse не может распознать изображения ресурсов - PullRequest
0 голосов
/ 01 апреля 2012

Ошибка - Рынок не может быть разрешен или не является полем.Новости не могут быть решены или не поле.Погода не может быть определена или не является полем.

Я пробую пример на GridView.Я добавил изображения с именем Market, News and Weather в папку res >> drawable-mdpi >> .Но Затмение не может распознать это.Изображения в формате * 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;
        }       
    }    
}

Ответы [ 3 ]

0 голосов
/ 01 апреля 2012

// без заглавных букв, только маленький

измените ваши рисованные изображения на маленькие буквы

Android будет поддерживать a-z, 0-9, _

0 голосов
/ 01 апреля 2012

В вашем коде замените следующие строки

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

с

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

также изменить имена изображений в папке для рисования.

0 голосов
/ 01 апреля 2012

Я попытался создать ресурс с именем Weather (изображение помещено в drawable-mdpi), и я получил

res \ drawable-mdpi \ Weather.jpg: Неверное имя файла: должно содержать только [А-z0-9 _.]

в Затмении. Я думал, что имена ресурсов должны быть ограничены в стиле змеи, но я нашел этот поток , где парень заявляет, что случай с верблюдами тоже в порядке. Это означает, что единственным ограничением является отсутствие заглавной буквы.

...