转载:Android GridView 实现合并单元格效果
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了转载:Android GridView 实现合并单元格效果,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3414字,纯文字阅读大概需要5分钟。
内容图文
package com.example.test; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.LinearLayout; import android.widget.TextView; public class MainActivity extends Activity { private static GridView mGridView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mGridView = new GridView(getApplicationContext()); MAdapter adapter = new MAdapter(mGridView.getContext(), new String[]{ "你好1","你好2","你好3","你好4","你好5","你好6","你好7","你好8","你好9","你好10", "你好11","你好12","你好13","你好14","你好15","你好16","你好17","你好18","你好19","你好20", "你好21","你好22","你好23","你好24","你好25","你好26","你好27","你好28","你好29","你好30" }); LinearLayout headLayout = new LinearLayout(getApplicationContext()); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, 300); headLayout.setLayoutParams(params); headLayout.setBackgroundColor(Color.RED); mGridView.setAdapter(adapter); mGridView.setNumColumns(2); setContentView(mGridView); } static class MAdapter extends BaseAdapter{ private String[] items; private Context context; public MAdapter(Context context, String[] items) { this.items = items; this.context = context; } @Override public int getCount() { return items.length; } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public int getItemViewType(int position) { return super.getItemViewType(position); } @Override public View getView(int position, View convertView, ViewGroup parent) { TextView textView = null; if (position %4 == 0) { textView = new MyText(context); AbsListView.LayoutParams params = new AbsListView.LayoutParams( AbsListView.LayoutParams.FILL_PARENT, 100); textView.setLayoutParams(params); textView.setTextColor(Color.BLACK); textView.setTextSize(20); textView.setText(items[position]); textView.setBackgroundColor(0x88FF0000); textView.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL); } else { textView = new TextView(context); AbsListView.LayoutParams params = new AbsListView.LayoutParams( AbsListView.LayoutParams.FILL_PARENT, 200); textView.setLayoutParams(params); textView.setTextColor(Color.BLACK); textView.setTextSize(20); textView.setText(items[position]); textView.setVisibility(View.VISIBLE); if (position %4 == 1) { // GridView的行高由该行最后一个元素的高度决定 AbsListView.LayoutParams params2 = new AbsListView.LayoutParams( AbsListView.LayoutParams.FILL_PARENT, 100); textView.setLayoutParams(params2); textView.setVisibility(View.INVISIBLE); } textView.setGravity(Gravity.CENTER); } return textView; } class MyText extends TextView { public MyText(Context context) { super(context); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); int targetWidth = mGridView.getMeasuredWidth() - mGridView.getPaddingLeft() - mGridView.getPaddingRight(); widthMeasureSpec = MeasureSpec.makeMeasureSpec(targetWidth, MeasureSpec.getMode(widthMeasureSpec)); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } } } }
原文:http://my.oschina.net/u/1395670/blog/516432
内容总结
以上是互联网集市为您收集整理的转载:Android GridView 实现合并单元格效果全部内容,希望文章能够帮你解决转载:Android GridView 实现合并单元格效果所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。