【问题标题】:How to create grids using Total rows and columns in android dynamically如何在android中动态使用总行数和列数创建网格
【发布时间】:2017-10-09 12:43:38
【问题描述】:

我是安卓新手。我想根据总行数和总列数构建一个网格并显示在视图中。创建网格后,我需要将图标放在其中一个网格中。该图标将来自服务器 URL。网格应该如下所示。

创建的网格应该适合屏幕。我怎么做?有人可以给我一个代码示例。先谢谢了!!!

【问题讨论】:

    标签: java android image gridview


    【解决方案1】:

    res/layout/gridview_android_example_with_image.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <GridView
            android:id="@+id/gridview_android_example"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:columnWidth="100dp"
            android:gravity="center"
            android:minHeight="90dp"
            android:numColumns="auto_fit"
            android:stretchMode="columnWidth" />
    
    </LinearLayout>
    

    AndroidGridViewDisplayImages.java

    import android.content.Context;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.BaseAdapter;
    import android.widget.GridView;
    import android.widget.ImageView;
    import android.widget.Toast;
    
    public class AndroidGridViewDisplayImages extends AppCompatActivity {
    
        GridView androidGridView;
    
    
    // Dummy Array of images (Replace with your own values)
        Integer[] imageIDs = {
                R.drawable.email, R.drawable.mobile, R.drawable.alram,
                R.drawable.android, R.drawable.wordpress, R.drawable.web,
                R.drawable.email, R.drawable.mobile, R.drawable.alram,
                R.drawable.android, R.drawable.wordpress, R.drawable.web,
                R.drawable.email, R.drawable.mobile, R.drawable.alram,
                R.drawable.android, R.drawable.wordpress, R.drawable.web,
        };
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.gridview_android_example_with_image);
    
            androidGridView = (GridView) findViewById(R.id.gridview_android_example);
            androidGridView.setAdapter(new ImageAdapterGridView(this));
    
            androidGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent,
                                        View v, int position, long id) {
                    Toast.makeText(getBaseContext(), "Grid Item " + (position + 1) + " Selected", Toast.LENGTH_LONG).show();
                }
            });
    
        }
    
        public class ImageAdapterGridView extends BaseAdapter {
            private Context mContext;
    
            public ImageAdapterGridView(Context c) {
                mContext = c;
            }
    
            public int getCount() {
                return imageIDs.length;
            }
    
            public Object getItem(int position) {
                return null;
            }
    
            public long getItemId(int position) {
                return 0;
            }
    
            public View getView(int position, View convertView, ViewGroup parent) {
                ImageView mImageView;
    
                if (convertView == null) {
                    mImageView = new ImageView(mContext);
                    mImageView.setLayoutParams(new GridView.LayoutParams(130, 130));
                    mImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                    mImageView.setPadding(16, 16, 16, 16);
                } else {
                    mImageView = (ImageView) convertView;
                }
                mImageView.setImageResource(imageIDs[position]);
                return mImageView;
            }
        }
    }
    

    【讨论】:

    • 非常感谢@Akshay Chopde。我不想在网格中显示图像。只有一个图标我必须放置在网格内。 /* Integer[] imageIDs = {}*/ 在我的例子中这是一个空数组。没有这个我如何构建网格?它会起作用吗?
    • 您需要一个包含图像集的数据列表。这样您就可以迭代到列表的大小并将列表中的每个图像设置为网格的单元格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 2012-02-19
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多