Как сделать пользовательский вид галереи в Android - PullRequest
2 голосов
/ 16 декабря 2010

Я пытаюсь создать пользовательский вид галереи .Или, может быть, я не понимаю, что я должен делать здесь.Мне нужно перезаписать метод onFling () класса Gallery , но я не понимаю, как это сделать, поскольку мой основной класс должен расширяться от Activity .

Я попытался создать класс под названием CustomGallery , который расширяет Галерея , но если я пытаюсь запустить приложение, я получаю принудительное закрытие.

Как переписать метод onFling () для просмотра галереи?

Спасибо!

РЕДАКТИРОВАТЬ

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

import android.content.Context;
import android.util.AttributeSet;
import android.widget.Gallery;

public class CustomGallery extends Gallery
{
    public CustomGallery(Context context)
    {
        super(context);
    }

    @Override
    public Gallery(Context context)
    {
        this(context, null);
    }

    @Override
    public Gallery(Context context, AttributeSet attrs)
    {
        this(context, attrs, R.attr.galleryStyle);
    }

    @Override
    public Gallery(Context context, AttributeSet attrs, int defStyle)
    {
        //
    }
}

РЕДАКТИРОВАТЬ 2

хорошо, это работает, спасибо Кристиан!

import android.content.Context;
import android.util.AttributeSet;
import android.widget.Gallery;

public class CustomGallery extends Gallery
{
    public CustomGallery(Context context, AttributeSet attrs)
    {
        super(context, attrs);

    }

}

1 Ответ

5 голосов
/ 16 декабря 2010

Как переписать метод onFling () для представления галереи?

  1. Создать класс, расширяющий галерею (например, CustomGallery,XD)
  2. Переопределить метод
  3. Используйте этот класс в макете.

Просто используйте его, как если бы вы использовали Gallery:

<LinearLayout>
...
<com.your.package.CustomGallery
    android:layout_width="fill_parent"
    the rest of the things here/>
...
</LinearLayout>

Обязательно переопределите методы конструктора:

public class CustomGallery extends Gallery{

    public CustomGallery(Context context, AttributeSet attrs) {
        super(context, attrs);
        // this could be empty, but must be here.
        // since it's a view to use from XML,
        // you must override this constructor
        // (not only the one that receives a context)
    }
}
...