如何更改屏幕上没有的视图背景?

时间:2014-03-01 20:25:54

标签: java android gridview imageview

我遇到了问题。我有一个gridView,如果你点击一个项目,gridview中其他项目的背景会改变。但是,如果任何项目不在屏幕上,但在滚动条中,应用程序崩溃并出现NullPointerException错误,我假设这是因为项目的图像视图不在屏幕上。

这里是gridview和imageadapter

<GridView
            android:id="@+id/gridView1"
            android:layout_width="400dp"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:background="@drawable/redback"
            android:columnWidth="50dp"
            android:gravity="center"
            android:layout_above="@+id/bbClear"
            android:numColumns="auto_fit"
            android:padding="15dp"
            android:stretchMode="none" >
        </GridView>

和图像适配器:

    // Constructor
    public ImageAdapter(Context c) {
        mContext = c;
    }

    @Override
    public int getCount() {
        return mThumbIds.length;
    }

    @Override
    public Object getItem(int position) {
        return mThumbIds[position];
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView = new ImageView(mContext);
        imageView.setImageResource(mThumbIds[position]);
        imageView.setId(mThumbIds[position]);
        //imageView.setScaleType(ImageView.ScaleType.CENTER);
        imageView.setPadding(getPixels(3), getPixels(3), getPixels(3), getPixels(3));
        imageView.setLayoutParams(new GridView.LayoutParams(getPixels(40), getPixels(40)));

        //imageView.setImageResource(R.drawable.greentwo);
        return imageView;
    }
    private int getPixels(int dipValue){//because you shouldnt use pixels. dip all the way.
        Resources r = mContext.getResources();
        int px = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, 
        r.getDisplayMetrics());
        return px;
}


}

实际错误来自

 v = parent.getChildAt(i);
在onClick方法中

,其中i是位置。

我能做些什么:

避免在较小的屏幕上显示滚动条

或允许更改不在屏幕上的视图背景。

0 个答案:

没有答案