`
龙哥IT
  • 浏览: 254618 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

GridView示例2(自动增长)

阅读更多

第一步:布局xml

 <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:background="@drawable/redball_ground">
<GridView 
	android:layout_width="fill_parent" android:layout_height="fill_parent"
	android:padding="10dip" android:verticalSpacing="10dip"
	android:horizontalSpacing="10dip" android:numColumns="auto_fit"
	android:columnWidth="60dip" android:stretchMode="columnWidth"
	android:gravity="center" android:id="@+id/grid"/>
</LinearLayout>

 第二步:定义图片的个数以及其他

// --点击次数 集合
	private ArrayList<String> redBallList = new ArrayList<String>();
	private GridView gv_red_ball;
	private String FirstGV = "REDBALL";
	// --红色球
	int RED_BALL_COUNT = 33;// 球的个数
	int RED_LINE_COUNT = 0;
	private Drawable tv_gray_draw;
	private Drawable tv_red_draw;
	private Bitmap orgimg;
	private int width;// 获取原始图片宽度

 

第三步:创建Activity

①:设置获取屏幕宽度

	// 屏幕宽度
		DisplayMetrics dm = new DisplayMetrics();
		getWindowManager().getDefaultDisplay().getMetrics(dm);
		int screenwidth = dm.widthPixels;

 

②:加载原始图片,获取尺寸

	// 加载原始图片
		orgimg = BitmapFactory.decodeResource(getResources(),
				R.drawable.red_ball);// 将图片解析成二进制,getResources()是加载资源文件
		width = orgimg.getWidth();

 

③:设置每行图片个数

	RED_LINE_COUNT  = screenwidth / width;

 

④:设置列数

gv_red_ball.setNumColumns(RED_LINE_COUNT);
		gv_red_ball.setOnItemClickListener(new GridItemClickListener(FirstGV,
				RED_BALL_COUNT));
		gv_red_ball.setAdapter(new BallAdapter(this, tv_gray_draw));

 第四:创建所需类OnItemClickListener

class GridItemClickListener implements OnItemClickListener {

		String ballColor;
		int ballCount;

		public GridItemClickListener(String ballColor, int ballCount) {
			super();
			this.ballColor = ballColor;
			this.ballCount = ballCount;
		}

		public void onItemClick(AdapterView<?> arg0, View view, int position,
				long arg3) {
			TextView tv_ball = (TextView) view;
			Drawable current_draw = tv_ball.getBackground();
			String ball_num = tv_ball.getText().toString();

			if (ballColor.equals(FirstGV)) {
				ballCount = RED_BALL_COUNT;
				if (current_draw == tv_gray_draw) {
					tv_ball.setBackgroundDrawable(tv_red_draw);
					tv_ball.setTextColor(Color.WHITE);
				} else {
					tv_ball.setBackgroundDrawable(tv_gray_draw);
					tv_ball.setTextColor(Color.BLACK);
				}
				if (redBallList.contains(ball_num)) {
					redBallList.remove(ball_num);
				} else {
					redBallList.add(ball_num);
				}
			}
		}
	}

 

第五步:创建构造函数,来继承Baseadapter

public int getRED_BALL_COUNT() {
		return RED_BALL_COUNT;
	}

	public void setRED_BALL_COUNT(int rED_BALL_COUNT) {
		RED_BALL_COUNT = rED_BALL_COUNT;
	}
	// 自定义适配器
	class BallAdapter extends BaseAdapter {
		// 上下文环境
		Context context;
		Drawable drawable;
		// 构造方法
		public BallAdapter(Context context, Drawable drawable) {
			super();
			this.context = context;
			this.drawable = drawable;
		}

		// 获得数量
		public int getCount() {
			// TODO Auto-generated method stub
			if (drawable == tv_gray_draw) {
				return getRED_BALL_COUNT();
			} else {
				return 0;
			}
		}
		// 获得当前选项
		public Object getItem(int item) {
			return item;
		}
		// 获得当前选项ID
		public long getItemId(int id) {
			return id;
		}

		public View getView(int position, View convertView, ViewGroup parent) {
			TextView tv_ball;

			if (convertView == null) {
				// 实例化ImageView对象
				tv_ball = new TextView(context);
				tv_ball.setLayoutParams(new GridView.LayoutParams(
						LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
			} else {
				tv_ball = (TextView) convertView;
			}
			tv_ball.setGravity(Gravity.CENTER);
			tv_ball.setTextColor(Color.BLACK);
			TextPaint tp = tv_ball.getPaint();
			tp.setFakeBoldText(true);
			tv_ball.setBackgroundDrawable(drawable);
			tv_ball.setText((position + 1) + "");

			return tv_ball;
		}
	}

 

 

  • 大小: 31.1 KB
分享到:
评论

相关推荐

    GridView示例

    在本示例中,我们将深入探讨GridView的基本用法、适配器的原理以及如何自定义GridView的行为。 首先, GridView的使用通常伴随着Adapter的使用。Adapter是连接数据源和UI组件的关键,它负责将数据转化为可以在...

    gridview 示例

    GridView是Android开发中常见的一种控件,主要用于展示数据集,通常以网格的形式排列。...本教程将深入探讨GridView的使用方法,以及如何...实践是最好的老师,动手尝试创建一个自己的GridView示例,相信你会收获更多。

    gridview示例

    在本示例中,我们将深入探讨如何在Android Studio环境下创建并使用GridView。 首先,让我们了解GridView的基本概念。GridView继承自AbsListView,它会将数据项按照行列的形式进行排列,用户可以通过横向或纵向滑动...

    C# GridView自动列宽

    C# GridView自动列宽 C# GridView自动列宽 C# GridView自动列宽

    GridView高效分页示例

    "GridView高效分页示例"就是一种优化策略,它避免了使用存储过程,而是采用更直接和高效的方法。 首先,我们要理解传统分页的问题。在默认情况下,GridView会一次性获取所有记录,然后在客户端进行分页,这显然对...

    WPF_Silverlight使用Grid+ScrollViewer自定义GridView示例

    在这个示例中,我们将探讨如何利用Grid和ScrollViewer控件来实现一个自定义的GridView,以展示大量的数据。 首先,Grid是WPF和Silverlight中最基本的布局控件之一,它允许开发者通过行和列来组织元素。在自定义...

    Android gridview使用示例

    在这个"Android GridView使用示例"中,我们将深入探讨如何在Android应用程序中有效地使用GridView。 首先,我们需要在XML布局文件中声明GridView。一个基本的GridView声明可能如下所示: ```xml &lt;GridView ...

    GridView增删改查学习示例源码

    GridView的`AutoGenerateColumns`属性可能被设置为`true`,以自动生成列,或者开发者可能会手动定义每列的数据字段,以实现更精细的控制。 接着,`Register.aspx`页面可能是用户注册页面,它允许新用户创建账户。...

    android开发GridView实例

    1. **设置GridView布局**:在XML布局文件中,我们需要定义一个GridView标签,并为其指定id和属性,如列宽(android:numColumns)以及是否自动调整大小(android:stretchColumns)等。 ```xml &lt;GridView android:id...

    aps.net ASPxGridView 自动生成序号列

    在本篇文章中,我们将深入探讨如何在APS.NET项目中利用ASPxGridView控件自动生成序号列,并通过具体的代码示例来实现这一功能。对于熟悉ASP.NET开发的开发者来说,ASPxGridView是一个非常实用且强大的数据展示控件,...

    GridView控件中实现自动编号

    在很多情况下,我们可能希望在GridView显示的数据行前添加一个自动编号,以便用户更容易理解和跟踪数据。本篇文章将详细讲解如何在GridView控件中实现自动编号。 首先,我们需要创建一个ASP.NET Web Forms项目,并...

    GridView实现自动编号

    2. **编写`GridView1_RowDataBound`方法**:在此方法中,我们需要检查行的类型是否为`DataControlRowType.DataRow`,即是否为数据行。如果是数据行,我们可以进行编号设置。 ```csharp protected void GridView1_...

    GridView自动序号

    在探讨“GridView自动序号”的实现方式时,我们首先需要理解GridView控件的基本功能与应用场景。GridView是ASP.NET中一个非常强大的数据绑定控件,它能够以表格的形式展示数据源中的数据,支持分页、排序、编辑等...

    gridview中的第一列想实现1,2,3序号

    根据提供的信息,本文将详细介绍如何在ASP.NET的GridView控件中为第一列设置自增序号(例如:1、2、3等)。这个问题是许多Web开发者在使用GridView时经常遇到的,尤其是在需要显示数据行的索引或者进行简单排序的...

    gridview自动编号及更新操作

    总结来说,这个示例展示了如何在ASP.NET 2.0中使用GridView控件进行数据的自动编号和更新操作。通过RowDataBound事件添加自动编号,通过CommandField和相关事件处理程序实现编辑和更新功能。同时,这一切都是基于SQL...

    Android ScrollView+GridView左右滑动 自动定位滑动到某一项

    在这个项目中,我们讨论的是如何结合使用ScrollView和GridView实现左右滑动,并在启动时或点击按钮时自动定位到指定项。 首先,让我们深入理解ScrollView。ScrollView是Android中的一个可滚动视图,它可以包裹任何...

    GridView上拉自动加载并刷新

    自动刷新通常指的是当数据源有新的内容添加或改变时,GridView能自动更新显示。这可以通过监听数据源的变化,然后调用Adapter的notifyDataSetChanged()方法来实现。 4. medio信息主题: "medio信息"可能是指特定...

    三层Gridview分页示例源码20130227

    在这个"三层Gridview分页示例源码20130227"中,我们可以深入学习如何在Web应用中有效地实现分页功能。 首先,三层架构包括表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。表现层主要负责与用户交互,业务...

    ASP.NET 2.0 GridView 示例 (隐藏列,添加模板列,给ButtonField 添加提示)

    在`GridViewDemo2`这个示例项目中,你将看到以上功能的完整实现。通过运行项目,可以直观地了解这些功能如何在实际应用中工作。同时,通过查看源代码,你可以学习到如何在C#后台代码和ASP.NET的前端标记中配合使用...

Global site tag (gtag.js) - Google Analytics