2013-07-28 2 views
1

Я ищу реализовать интерфейс, подобный следующему: enter image description hereAndroid, как реализовать интерфейс карты, похожий на Google Play магазин

Я создал вытяжку, который я использую в качестве фона в моем файле XML элемента списка. Здесь, однако, я считаю, что они используют GridView. Как я могу экстраполировать то, что я сделал с ListView, чтобы добиться того же результата с GridView?

Вот мой getView() адаптера gridview.

public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     ImageView iv; 
     if (convertView == null) { // if it's not recycled, initialize some attributes 
      iv = new ImageView(ctx); 
      iv.setLayoutParams(new GridView.LayoutParams(350,350)); 
      iv.setScaleType(ImageView.ScaleType.CENTER_CROP); 
      iv.setPadding(8, 8, 8, 8); 
     } else { 
      iv = (ImageView) convertView; 
     } 

     iv.setImageResource(pics[position]); 
     return iv; 

    } 
+0

Что вам нужно сделать, это раздуть другой файл макета в getView() вашего пользовательского адаптера. – Vikram

+0

Я не понимаю. Не могли бы вы дать мне пример кода/учебник о том, как это сделать? –

+1

См. Ответ ниже для ссылки на учебник. Другой: [Custom GridView Android] (http://blograchita.wordpress.com/2013/05/04/custom-gridview-android/) – Vikram

ответ

0

ListView и GridView в основном те же за кулисами. Они оба наследуют от AbsListView и поэтому оба имеют метод getView.

Посмотрите на этот учебник о том, как реализовать GridView: http://www.mkyong.com/android/android-gridview-example/

EDIT:

Внутри метода getView вы бы надуть пункт так:

public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    View inflatedView; 

    if (convertView == null) { 
     inflatedView = new View(context); 
     inflatedView = inflater.inflate(R.layout.mylistitem, null); 
    } else { 
     inflatedView = (View) convertView; 
    } 
    return inflatedView; 
} 

Это не отличается от того, как вы это делаете в ListView.

+0

, но в случае gridview есть что-то похожее на «элемент списка», как в случай списка, который я могу изменить? –

+0

Я добавил код getView(). –

+0

Да, вы можете использовать тот же XML-макет, который вы используете для элемента «ListView», но макет должен иметь ширину, равную 'wrap_content', а не' match_parent' или 'fill_parent'. – Darwind

Смежные вопросы