0

我正在实现一个应用程序,该应用程序允许用户通过画廊拖动页面来阅读报纸。

我写了一个适配器,它返回 ImageViews 并在应用程序上加载了一些位图。

我的问题是,第一张图像显示完美,下一张图像的前景为灰色,使图像看起来更暗。拖到某个地方后,第一个也得到了这个前景。我怎样才能避免我的观点得到这个前景?

现在我意识到 ImageViews 在 alpha 通道上获得了一些价值,这就是为什么与我的黑色背景一起图像看起来更暗的原因。我怎样才能避免它?

根据请求,这是我的代码:

    Gallery view = new Gallery(context);
    view.setSpacing(10);
    view.setAdapter(new PageAdapter(context, pages));
    LayoutParams params = new LayoutParams(600, 300);
    layout.addView(view, params);

和页面适配器

私有类 PageAdapter 扩展 ArrayAdapter { 私有列表页面;

    public PageAdapter(Context c, List<Page> pages) {
        super(c, 0);
        this.pages = pages;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        Page page = getItem(position);

        ImageView image;

        if (convertView != null)
            image = (ImageView) convertView;
        else
            image = new ImageView(context);

        image.setImageBitmap(ImageUtils.rgb(page.loadNormal()));

        return image;
    }

    public int getCount() {
        return pages.size();
    }

    public Page getItem(int position) {
        return pages.get(position);
    }
}

创建此 ImageUtils.rgb 是为了将任何位图的副本创建到 Bitmap.RGB_586 中,但会发生相同的行为。

4

1 回答 1

1

您需要在 Gallery 上指定 unselectedAlpha 属性。

通过你的java(根据你的例子)

view.setUnselectedAlpha(1.0);

如果您使用 xml 来声明 Gallery,请添加

android:unselectedAlpha="1.0"
于 2011-08-16T22:52:46.140 回答