-1

我按照教程创建了一个简单的画廊。
一切正常,但我无法更改边框/背景颜色。
也许一张小图有助于理解我的问题。 所需的颜色变化

我得到一个带有深灰色填充背景的缩放图像。这些矩形以浅灰色为边框,我想更改它。

我试过了:

public View getView(int position, View convertView, ViewGroup parent) {
  ImageView imageView = new ImageView(mContext);      
  imageView.setImageBitmap(imageBitmaps[position]);
  imageView.setLayoutParams(new Gallery.LayoutParams(300, 200));
  imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
  imageView.setBackgroundResource(imageBackground);         
  **imageView.setBackgroundColor(Color.BLUE);**
  ...

但这不起作用,因为深灰色部分也被涂成蓝色。有任何想法吗?

编辑:添加一些代码片段和错误的结果

使用setBackgroundColor会导致这个结果

我的画廊创作:

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);   

  mGallery = (Gallery)findViewById(R.id.imgGallery);    
  mAdapter = new ImageAdapter(this);
  mGallery.setAdapter(mAdapter);

但当

public View getView(int position, View convertView, ViewGroup parent)

称为 convertView为null。

4

1 回答 1

0

尝试这样的事情(虽然我还没有测试过):

switch (position) {
            case 1:
                imageView.setBackgroundColor(convertView.getContext().getResources().getColor(R.color.blue));
                break;
            case 2:
                break;
            //... and so on
        }

你也可以试试这个imageView.setBackgroundColor(new ColorDrawable(Color.BLUE));

如果这对您没有帮助,请告诉我!

编辑:

试试这个,如果有任何变化,请告诉我:

imageView.setBackgroundColor(Color.parseColor("#FF0000"));

另一种选择是,不要以ImageView编程方式实例化它,而是用你自己的内部构建你自己的 xml,ImageView然后再做一个LayoutInflater.from(mContext).inflate(R.layout.your_image_view, parent, false);

于 2015-10-27T19:20:08.913 回答