展会信息港展会大全

自定义两行可左右滑动的GridView
来源:互联网   发布日期:2015-10-03 10:48:28   浏览:3053次  

导读:效果图:、<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.a...

效果图:

<?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" >

<HorizontalScrollView

android:id="@+id/scrollView"

android:layout_width="match_parent"

android:layout_height="match_parent" >

<LinearLayout

android:id="@+id/linearLayout1"

android:layout_width="wrap_content"

android:layout_height="wrap_content" >

<GridView

android:id="@+id/gridView1"

android:layout_width="match_parent"

android:layout_height="match_parent" >

</GridView>

</LinearLayout>

</HorizontalScrollView>

</LinearLayout>

public class MainActivity extends Activity {

HorizontalScrollView horizontalScrollView;

GridView gridView;

DisplayMetrics dm;

private int NUM = 4; // 每行显示个数

private int hSpacing = 20;// 水平间距

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

horizontalScrollView = (HorizontalScrollView) findViewById(R.id.scrollView);

gridView = (GridView) findViewById(R.id.gridView1);

horizontalScrollView.setHorizontalScrollBarEnabled(false);// 隐藏滚动条

getScreenDen();

setValue();

}

private void setValue() {

MyGridViewAdapter adapter = new MyGridViewAdapter(this, 21);

int count = adapter.getCount();

int columns = (count % 2 == 0) ? count / 2 : count / 2 + 1;

gridView.setAdapter(adapter);

LayoutParams params = new LayoutParams(columns * dm.widthPixels / NUM,

LayoutParams.WRAP_CONTENT);

gridView.setLayoutParams(params);

gridView.setColumnWidth(dm.widthPixels / NUM);

// gridView.setHorizontalSpacing(hSpacing);

gridView.setStretchMode(GridView.NO_STRETCH);

if (count <= 3) {

gridView.setNumColumns(count);

} else {

gridView.setNumColumns(columns);

}

}

private void getScreenDen() {

dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港