Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在安卓系统中,如何将屏幕划分为小方块?_Android_Android Layout - Fatal编程技术网

Android 在安卓系统中,如何将屏幕划分为小方块?

Android 在安卓系统中,如何将屏幕划分为小方块?,android,android-layout,Android,Android Layout,我想制作一个应用程序,将所有屏幕分割成小正方形,当我触摸其中一个时,它会改变我触摸的正方形的颜色。 我没有找到任何这样做的代码。 在android中如何实现这一点?使用GridView实现这类功能 GridView GridView是一个视图组,在二维可滚动网格中显示项目。网格项将使用ListAdapter自动插入到布局中 将“单击侦听器”设置为特定项以更改相应的框颜色 参考:-您应该使用一个RecyclerView,它可以回收其子视图以获得更好的性能,并且您可以将其layoutmanager设

我想制作一个应用程序,将所有屏幕分割成小正方形,当我触摸其中一个时,它会改变我触摸的正方形的颜色。 我没有找到任何这样做的代码。
在android中如何实现这一点?

使用GridView实现这类功能

GridView

GridView是一个视图组,在二维可滚动网格中显示项目。网格项将使用ListAdapter自动插入到布局中

将“单击侦听器”设置为特定项以更改相应的框颜色


参考:-

您应该使用一个RecyclerView,它可以回收其子视图以获得更好的性能,并且您可以将其layoutmanager设置为GridLayoutManger。 对于颜色更改,当您初始化数据列表并更新项目上的颜色时,您可以将颜色或状态存储到类似SparseArray的内容中单击,然后从Recyclerview.Adapter从onBindViewHolder()方法中的viewholder getAdapterPosition()中检索正确的颜色

以下是参考资料:

XML

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/gradient_touchscreen"
    tools:context=".tochscreen_page_2">


    <GridView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/gridview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:columnWidth="90dp"
        android:numColumns="auto_fit"
        android:verticalSpacing="10dp"
        android:horizontalSpacing="10dp"
        android:stretchMode="none"
        android:gravity="center"
        />




</android.support.constraint.ConstraintLayout>
结果是:

嗨!欢迎来到StackOverflow!我相信从你提出问题的方式很难理解你的问题是什么。也许您希望了解:。使用gridview并更改clickUpload design的背景,您希望我能够使用它,但我如何锁定所有方块并添加更多方块来填充屏幕?现在它看起来像这样:
public class tochscreen_page_2 extends AppCompatActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tochscreen_page_2);

        GridView gridview = (GridView) findViewById(R.id.gridview);
        gridview.setAdapter(new ImageAdapter(this));

        gridview.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View v,
                                    int position, long id) {
                Toast.makeText(tochscreen_page_2.this, "" + position,
                        Toast.LENGTH_SHORT).show();
            }
        });
    }
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;

public class ImageAdapter extends BaseAdapter {
    private Context mContext;

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

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

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

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

    // create a new ImageView for each item referenced by the Adapter
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) {
            // if it's not recycled, initialize some attributes
            imageView = new ImageView(mContext);
            imageView.setLayoutParams(new ViewGroup.LayoutParams(100, 100));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

        } else {
            imageView = (ImageView) convertView;
        }

        imageView.setImageResource(mThumbIds[position]);
        return imageView;
    }

    // references to our images
    private Integer[] mThumbIds = {
            R.drawable.gradient_charger, R.drawable.gradient_flashlight,
            R.drawable.gradient_vibrtion, R.drawable.gradient_charger,
            R.drawable.gradient_charger, R.drawable.gradient_flashlight,
            R.drawable.gradient_vibrtion, R.drawable.gradient_charger,
            R.drawable.gradient_charger, R.drawable.gradient_flashlight,
            R.drawable.gradient_vibrtion, R.drawable.gradient_charger,
            R.drawable.gradient_charger, R.drawable.gradient_flashlight,
            R.drawable.gradient_vibrtion, R.drawable.gradient_charger,
            R.drawable.gradient_charger, R.drawable.gradient_flashlight,
            R.drawable.gradient_vibrtion, R.drawable.gradient_charger,
            R.drawable.gradient_charger, R.drawable.gradient_flashlight,
            R.drawable.gradient_vibrtion, R.drawable.gradient_charger,
            R.drawable.gradient_charger, R.drawable.gradient_flashlight,
            R.drawable.gradient_vibrtion, R.drawable.gradient_charger,
            R.drawable.gradient_charger, R.drawable.gradient_flashlight,
            R.drawable.gradient_vibrtion, R.drawable.gradient_charger,
            R.drawable.gradient_charger, R.drawable.gradient_flashlight,
            R.drawable.gradient_vibrtion, R.drawable.gradient_charger,
            R.drawable.gradient_charger, R.drawable.gradient_flashlight,
            R.drawable.gradient_vibrtion, R.drawable.gradient_charger,













    };
}