
正文
android九宫格,Android九宫格拼图游戏代码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
android九宫格的布局怎样做
很简单的实现方案:
竖着放置三个Linearlayout,每个Linearlayout都加上android:layout_weight="1",这样,他们平分了整个的高度。
在这三个Linearlayout中,分别横向放置三个Linearlayout,同样加上android:layout_weight="1",九宫格就实现了。
要提到的一点是,如果你觉得竖着的三个高度太高,可以放四个,第四个也加上android:layout_weight="1",不过里面可以为空,为的是占据四分之一的高度。
相关问答
Q1: android九宫格xml怎么写
xml文件:
?xml version="1.0" encoding="utf-8"?
LinearLayout xmlns:android=""
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:background="@drawable/yellow"
ImageView android:id="@+id/ImageView01"
android:layout_width="100sp"
android:layout_height="100sp"
android:layout_gravity="center_vertical"
android:background="@drawable/a"/ImageView
GridView
android:id="@+id/gridview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numColumns="3"
android:verticalSpacing="30dip"
android:horizontalSpacing="10dip"
android:columnWidth="90dip"
android:stretchMode="columnWidth"
android:gravity="center"
android:listSelector="@drawable/c"
/GridView
/LinearLayout
其中android:numColumns="3" 代表九宫格的列数 auto_fit时为自动
2、实现代码
复制代码 代码如下:
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// 设置屏幕没有标题
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
// 去掉标题栏
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
GridView gridview = (GridView) findViewById(R.id.gridview);
// 创建一个数组列表对象
ArrayListHashMapString, Object lstImageItem = new ArrayListHashMapString, Object();
/**
* 为每个格子添加内容
*/
for (int i = 1; i 10; i++) {
HashMapString, Object map = new HashMapString, Object();// 建立hashmap对象
if (i == 1) {
map.put("ItemImage", R.drawable.g11);
map.put("ItemText", getResources()
.getString(R.string.gridview1));
}
if (i == 2) {
map.put("ItemImage", R.drawable.g12);
map.put("ItemText", getResources()
.getString(R.string.gridview2));
}
if (i == 3) {
map.put("ItemImage", R.drawable.g13);
map.put("ItemText", getResources()
.getString(R.string.gridview3));
}
if (i == 4) {
map.put("ItemImage", R.drawable.g14);
map.put("ItemText", getResources()
.getString(R.string.gridview4));
}
if (i == 5) {
map.put("ItemImage", R.drawable.g15);
map.put("ItemText", getResources()
.getString(R.string.gridview5));
}
if (i == 6) {
map.put("ItemImage", R.drawable.g16);
map.put("ItemText", getResources()
.getString(R.string.gridview6));
}
if (i == 7) {
map.put("ItemImage", R.drawable.g17);
map.put("ItemText", getResources()
.getString(R.string.gridview7));
}
if (i == 8) {
map.put("ItemImage", R.drawable.g18);
map.put("ItemText", getResources()
.getString(R.string.gridview8));
}
if (i == 9) {
map.put("ItemImage", R.drawable.g19);
map.put("ItemText", getResources()
.getString(R.string.gridview9));
}
lstImageItem.add(map);
}
/**
* 为GridView建立SimpleAdapter适配器
*/
// SimpleAdapter()中的五个参数分别是:第一个context,第二个数据资源,第三个每一个子项的布局文件,第四个每一个子项中的Key数组
// 第五个每一个子项中的Value数组
SimpleAdapter saImageItems = new SimpleAdapter(this, lstImageItem,
R.layout.grid_item, new String[] { "ItemImage", "ItemText" },
new int[] { R.id.ItemImage, R.id.ItemText });
gridview.setAdapter(saImageItems);// 添加适配器
gridview.setOnItemClickListener(new ItemClickListener());// 为每一个子项设置监听
}
class ItemClickListener implements OnItemClickListener {
@SuppressWarnings("unchecked")
public void onItemClick(AdapterView? arg0,// The AdapterView where the
// click happened
View arg1,// The view within the AdapterView that was clicked
int arg2,// The position of the view in the adapter
long arg3// The row id of the item that was clicked
) {
HashMapString, Object item = (HashMapString, Object) arg0
.getItemAtPosition(arg2);
if (item.get("ItemText").equals(
getResources().getString(R.string.gridview1))) {
Toast.makeText(MainActivity.this, R.string.gridview1,
Toast.LENGTH_LONG).show();
}
if (item.get("ItemText").equals(
getResources().getString(R.string.gridview2))) {
Toast.makeText(MainActivity.this, R.string.gridview2,
Toast.LENGTH_LONG).show();
}
if (item.get("ItemText").equals(
getResources().getString(R.string.gridview3))) {
Toast.makeText(MainActivity.this, R.string.gridview3,
Toast.LENGTH_LONG).show();
}
if (item.get("ItemText").equals(
getResources().getString(R.string.gridview4))) {
Toast.makeText(MainActivity.this, R.string.gridview4,
Toast.LENGTH_LONG).show();
}
if (item.get("ItemText").equals(
getResources().getString(R.string.gridview5))) {
Toast.makeText(MainActivity.this, R.string.gridview5,
Toast.LENGTH_LONG).show();
}
if (item.get("ItemText").equals(
getResources().getString(R.string.gridview6))) {
Toast.makeText(MainActivity.this, R.string.gridview6,
Toast.LENGTH_LONG).show();
}
if (item.get("ItemText").equals(
getResources().getString(R.string.gridview7))) {
Toast.makeText(MainActivity.this, R.string.gridview7,
Toast.LENGTH_LONG).show();
}
if (item.get("ItemText").equals(
getResources().getString(R.string.gridview8))) {
Toast.makeText(MainActivity.this, R.string.gridview8,
Toast.LENGTH_LONG).show();
}
if (item.get("ItemText").equals(
getResources().getString(R.string.gridview9))) {
Toast.makeText(MainActivity.this, R.string.gridview9,
Toast.LENGTH_LONG).show();
}
}
}
}
Q2: Android系统的九宫格图案解锁有多少个组合
安卓手机图案解锁共有389112种 (仅供参考)
手机九宫格图案解锁也拥有一定的规则,具体来说是:
1. 至少经过四个点;
2. 不能重复经过同一个点;
3. 路径中间的点不能跳过(比如从1至3必须经过2),除非中间点被使用过。
考虑到上述运行规则,可以用计算机写一段代码进行运算,而最后得出的答案为389112种,这个答案获得了普遍的认可。当然,其实对于Android设备来说,连通6个点的图案安全性已经足够强了,至于是否需要把手指用到抽筋、绘制极为复杂的图案,完全就看个人喜好和能力了。
Q3: android 九宫格怎么居中显示? 下面的我用android:gravity="center" 这个属性老居中不了。
Android 九宫格显示控件,通常是用GridView,GridView多行多列网状形式的显示控件,而使GridView Item水平居中需要设置两点
GridView中设置属性android:gravity="center"
在其item布局文件中设置LinearLayout的属性android:gravity="center"(通常没有居中,都是因为Item的布局没有设置)
关于GridView的常用设置:
android:numColumns="auto_fit" --------列数设置为自动
android:columnWidth="90dp",----------每列的宽度,也就是Item的宽度
android:stretchMode="columnWidth"------缩放与列宽大小同步
android:verticalSpacing="10dp"----------垂直边距
android:horizontalSpacing="10dp"-------水平边距
Q4: 手机怎么解锁九宫格密码?
安卓手机图案解锁共有389112种 (仅供参考)
手机九宫格图案解锁也拥有一定的规则,具体来说是:
1. 至少经过四个点;
2. 不能重复经过同一个点;
3. 路径中间的点不能跳过(比如从1至3必须经过2),除非中间点被使用过。
考虑到上述运行规则,可以用计算机写一段代码进行运算,而最后得出的答案为389112种,这个答案获得了普遍的认可。当然,其实对于Android设备来说,连通6个点的图案安全性已经足够强了,至于是否需要把手指用到抽筋、绘制极为复杂的图案,完全就看个人喜好和能力了。






