【问题标题】:How set Alternate Cell Color in a Grid如何在网格中设置备用单元格颜色
【发布时间】:2012-02-04 21:07:12
【问题描述】:

如何在网格中设置备用单元格颜色? 我发现了很多问题/教程 关于如何设置行颜色但没有 关于细胞的颜色。 提前致谢

【问题讨论】:

    标签: android


    【解决方案1】:

    如果你有很多listView的例子,为什么不直接使用getView方法,因为getView方法用于适配器,适配器用于视图、列表和网格。只需根据adapterview中view的位置设置view的背景即可。

    protected void getView(AdapterView<> adapterView, View convertView, int position, long id)
    {
    
        LayoutInflater inflater = (LayoutInflater)context.getSystemService
          (Context.LAYOUT_INFLATER_SERVICE);
        View view =inflater.inflate(yourlayout.xml, null);
    
        if(position%2==0)
            view.setBackgroundColor(color1);
        else
            view.setBackgroundColor(color2);
         return view;
    }
    

    【讨论】:

    • 感谢您的提示,但我是 android 新手,所以如果您给我更多提示。步骤 1) 从我的 Activity GridView gridview = (GridView) findViewById(R.id.gridview); 中获取网格第二步是什么
    • 很高兴你能一步步告诉我没有代码的方法。
    • 在你的网格视图覆盖方法getView的适配器中
    • 很抱歉打扰您,但我正在学习 android 的东西只是一点时间,所以我应该在哪里设置 getView(在 Adpater 中或直接在 Activity 中)请耐心等待 :)
    • 如果你能写你的适配器代码,我可以编辑你的代码来实现它。
    【解决方案2】:

    向前迈出一步,它起作用了

    public class ListViewA extends Activity {
    GridView MyGrid;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        MyGrid = (GridView) findViewById(R.id.gridview);
        MyGrid.setAdapter(new ImageAdapter(this));
    }
    
    public class ImageAdapter extends BaseAdapter {
        Context MyContext;
    
        public ImageAdapter(Context _MyContext) {
            MyContext = _MyContext;
        }
    
        @Override
        public int getCount() {
            return 9;
        }
    
        public View getView(int position, View convertView, ViewGroup parent) {
            View view = convertView;
    
            if (convertView == null) {
    
                LayoutInflater li = getLayoutInflater();
                view = li.inflate(R.layout.main, null);
            }
    
            if (position % 2 == 0)
                view.setBackgroundColor(0x30FF0000);
            else
                view.setBackgroundColor(0x300000FF);
            return view;
    
        }
    
        @Override
        public Object getItem(int arg0) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public long getItemId(int arg0) {
            // TODO Auto-generated method stub
            return 0;
        }
    }
    

    }

    【讨论】:

    • //main.xml schemas.android.com/apk/res/android" android:id="@+id/ gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp" android:verticalSpacing="5dp" android:horizo​​ntalSpacing="20dp" android:numColumns="4" android:columnWidth="30dp " android:stretchMode="columnWidth" android:gravity="center_horizo​​ntal" android:background="#ffffff" />
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-21
    • 2018-06-22
    • 2013-06-15
    相关资源
    最近更新 更多