如何在android中创建自定义Gallery视图

时间:2010-12-15 23:42:12

标签: android gallery

我正在尝试创建自定义图库视图。或者也许我不理解我应该在这里做什么。我需要覆盖 Gallery 类的 onFling()方法,但我不知道如何执行此操作,因为我的主类必须从 Activity < /强>

我尝试创建一个名为 CustomGallery 的课程,扩展图库,但如果我尝试运行应用程序,我会收到一个强制关闭。

如何覆盖图库视图的 onFling()方法?

谢谢!

修改

我正在尝试下面的Christian的解决方案,但是这个类在它上面都有错误。显然我做错了。建议?

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 个答案:

答案 0 :(得分:5)

  
    

如何覆盖Gallery View的onFling()方法?

  
  1. 创建一个扩展图库的类(例如CustomGallery,XD)
  2. 覆盖方法
  3. 在布局中使用该类。
  4. 只需使用它就像使用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)
        }
    }