Android-具有背景图片的ImageViews画廊?

问题描述

| 我是Android开发的新手,但是熟悉视图,控件,对象,XML布局,C#等的概念。 我正在尝试使用尽可能多的本机功能创建图像的水平滚动“列表”。 (我不反对使用自定义组件,但在尝试将某些东西混在一起之前,我试图尽可能地学习和优化。) 我目前有一个带有适配器的图库。适配器正在创建ImageView,如许多基本教程中所见。在适配器的每次通过中,我都在设置ImageView的背景图像。我希望我能够将前景图像放置在特定X / Y位置的背景图像之上。不幸的是,我还没有做到让背景图像按照我想要的方式工作。 一个简单的Gallery和ImageView甚至可以实现吗?或者,我是否需要构建某种自定义控件(可能使用嵌套布局?)并在适配器的每次迭代中使用该控件? 任何帮助将不胜感激。 这就是我所看到的... http://philaphan.com/public/stackoverflow/gallery1.png ...以及我想看到的... http://philaphan.com/public/stackoverflow/gallery2.png 这是我的代码:
public class MyAdapter extends BaseAdapter
{

    private Context mContext;

    public MyAdapter(Context c)
    {
        mContext = c;   
    }

    public int getCount()
    {
        return App.myList.size();   
    }

    public Object getItem(int position)
    {   
        return position;    
    }

    public long getItemId(int position)
    {
        return position;    
    }

    public View getView(int position,View convertView,ViewGroup parent)
    {
        String imagePath = App.myList.get(position).thumbnail;

        ImageView i = new ImageView(mContext);

        i.setLayoutParams(new Gallery.LayoutParams(150,150));
        i.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
        i.setBackgroundResource(R.drawable.image_bk5);
        //i.setBackgroundColor(Color.BLACK);

        File f = new File(imagePath);

        if (!f.exists())
        {
            i.setImageResource(R.drawable.image_missing);
        }
        else
        {
            Bitmap bmp = BitmapFactory.decodeFile(imagePath);
            i.setImageBitmap(bmp);
        }

        return i;
    }
}
    

解决方法

        我认为您可以使用:
i.setPadding(50,50,50); //setpadding(left,top,right,bottom)
    ,        尝试使用此。 替换
i.setScaleType(ImageView.ScaleType.CENTER_INSIDE); with  i.setScaleType(ImageView.ScaleType.FIT_XY);
或检查您的背景图片。我认为您的背景图片宽度产生了问题。     ,        我可以通过使用带有LinearLayout嵌套的Horizo​​ntalScrollView来解决此问题。然后,我以编程方式添加两个ImageView,一个用于背景,一个用于前景,然后将前景放置在我选择的任何X / Y位置。 我仍然想知道是否可以在Gallery控件中完成此操作,如果以后有人看到的话。     ,        通常,如果要将背景图像添加到任何种类的膨胀式图库或ArrayAdapter或BaseAdapter中,则-确保使用以下方法在父布局或父视图(例如主布局)中定义背景图像属性\“ android:background = \” @ drawable / backupimage \“。 不要在XML中设置表示重复实例的自定义行/对象视图的背景。 这样,背景图像将仅显示一次,在所有膨胀的对象后均显示为静态,而不会在每个行/对象上一次又一次地重复。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...