android horizontalscrollview属性,Android中HorizontalScrollView使用方法详解
由于移动设备物理显示空间一般有限,不可能一次性的把所有要显示的内容都显示在屏幕上。所以各大平台一般会提供一些可滚动的视图来向用户展示数据。Android平台框架中为我们提供了诸如ListView、GirdView、ScrollView等滚动视图控件,这几个视图控件也是我们平常使用最多的。下面介绍一下HorizontalScrollView的使用和需要注意的点:
HorizontalScrollView是一个FrameLayout ,这意味着你只能在它下面放置一个子控件,这个子控件可以包含很多数据内容。有可能这个子控件本身就是一个布局控件,可以包含非常多的其他用来展示数据的控件。这个布局控件一般使用的是一个水平布局的LinearLayout 。TextView也是一个可滚动的视图控件,所以一般不需要HorizontalScrollView
下面介绍一个HorizontalScrollView中包含许多图片,并且可以滚动浏览的示例
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
mLinearLayout = (LinearLayout) findViewById(R.id.mygallery);
File externalDir = Environment. getExternalStorageDirectory();
String photosPath = externalDir.getAbsolutePath() + "/test/";
File photosFile = new File(photosPath);
for (File photoFile : photosFile.listFiles()) {
mLinearLayout.addView(getImageView(photoFile.getAbsolutePath()));
}
}
private View getImageView(String absolutePath) {
Bitmap bitmap = decodeBitmapFromFile(absolutePath, 200, 200);
LinearLayout layout = new LinearLayout(getApplicationContext());
layout.setLayoutParams( new LayoutParams(250, 250));
layout.setGravity(Gravity. CENTER);
ImageView imageView = new ImageView(this);
imageView.setLayoutParams( new LayoutParams(200,200));
imageView.setScaleType(ImageView.ScaleType. CENTER_CROP);
imageView.setImageBitmap(bitmap);
layout.addView(imageView);
return layout;
}
private Bitmap decodeBitmapFromFile(String absolutePath, int reqWidth, int reqHeight) {
Bitmap bm = null;
// First decode with inJustDecodeBounds=true to check dimensions
final BitmapFactory.Options options = new BitmapFactory.Options();
options. inJustDecodeBounds = true ;
BitmapFactory. decodeFile(absolutePath, options);
// Calculate inSampleSize
options. inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
// Decode bitmap with inSampleSize set
options. inJustDecodeBounds = false ;
bm = BitmapFactory. decodeFile(absolutePath, options);
return bm;
}
private int calculateInSampleSize(Options options, int reqWidth,
int reqHeight) {
// Raw height and width of image
final int height = options.outHeight;
final int width = options.outWidth;
int inSampleSize = 1;
if (height > reqHeight || width > reqWidth) {
if (width > height) {
inSampleSize = Math. round((float)height / ( float)reqHeight);
} else {
inSampleSize = Math. round((float)width / ( float)reqWidth);
}
}
return inSampleSize;
}
要显示的图片放在外置SDCard中test目录下,上面的示例程序只是显示了一张张大图片的缩略版本,对这方面不懂的可以参看:
HorizontalScrollView还可以设置滚动到一个指定的位置(x,0),它的子控件也会跟随着滚动。
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 水平直接滚动800px,如果想效果更平滑可以使用smoothScrollTo(int x, int y)
hsv.scrollTo(800, 0);
}
}, 2000);
效果图:
以上就是本文的全部内容,希望对大家学习Android软件编程有所帮助。
android horizontalscrollview属性,Android中HorizontalScrollView使用方法详解相关推荐
- android listview ontouchlistener,Android ListView监听滑动事件的方法(详解)
ListView的主要有两种滑动事件监听方法,OnTouchListener和OnScrollListener 1.OnTouchListener OnTouchListener方法来自View中的监 ...
- java多线程中的join方法详解
java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...
- Java中的main()方法详解
源文作者:leizhimin 源文链接:http://lavasoft.blog.51cto.com/62575/53263 源文作者版权申明: 版权声明:原创作品,允许转载,转载时请务必以超链 ...
- Python 在子类中调用父类方法详解(单继承、多层继承、多重继承)
Python 在子类中调用父类方法详解(单继承.多层继承.多重继承) by:授客 QQ:1033553122 测试环境: win7 64位 Python版本:Python 3.3.5 代码实践 ...
- php 文件扫描去重,PHP中的去重方法详解和文件下载
本文主要和大家分享PHP中的去重方法详解和文件下载,在php中文件导入过程中,经常会遇到重复事件,那么就需要我们去重,然后进行下载. 1.思想 先设置一个存储主键数组,和一个空数组.解析文件,然后看要 ...
- keep alive PHP,vue中keep-alive使用方法详解
这次给大家带来vue中keep-alive使用方法详解,vue中keep-alive使用的注意事项有哪些,下面就是实战案例,一起来看一下. 1.keep-alive的作用以及好处 在做电商有关的项目中 ...
- java中main是什么_Java中的main()方法详解
在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是 ...
- android 清空数组缓存,Android数据持久化之读写SD卡中内容的方法详解
本文实例讲述了Android数据持久化之读写SD卡中内容的方法.分享给大家供大家参考,具体如下: 前面文章里讲的那三个方法:openFileOutput.openFileInput虽然都能通过流对象O ...
- android view使用方法,Android View构造方法第三参数使用方法详解
我们都知道,在Android中要使用一个View,一般会有两种方式: 在XML文件中配置: 直接在代码中new一个View的对象. 我们今天讨论的内容就是围绕着View的构造方法的. 1.实例 首先我 ...
- android使组件居中,Android图文居中显示控件使用方法详解
最近项目中用到了文字图标的按钮,需要居中显示,如果用TextView实现的方式,必须同时设置padding和drawablePadding.如下: android:layout_width=" ...
最新文章
- ESRI2007应用开发大赛总结
- 【数据库】Ubuntu12.04安装配置Redis3.0
- 重庆python就业工资待遇-重庆python培训多少钱?
- Ubuntu下安装和使用zookeeper和kafka
- App自动化测试之Adb基础命令使用
- 深入基础(一)模块化
- 浅谈《刺客信条》的叙事:刺客和圣殿骑士的冲突与融合
- 大数据打造你的变美频道——数加平台上小红唇的大数据实践
- 怎样下载安装python_Windows系统上如何安装Python和pip
- YouTube-DNN优化原理推导
- 快克SEO站群搜狗提交工具
- 加载mySQL数据到内存_【测试验证】数据库加载到内存占用大小
- Android时代的赢创之路
- 婚礼一条龙服务成为新亮点
- MyEclipse Hibernate反向工程生成实体类
- MySQL数据库笔记6——约束Constraint
- 【经验教程】google谷歌Gmail邮箱帐号被停用怎么恢复Gmail邮箱google谷歌账号?
- 程序猿头头(async与await的原理)
- Number of unique ways that ATM can tender
- 【火炉炼AI】深度学习004-Elman循环神经网络
热门文章
- 【原】小软件开发心得(二)——推广、测试
- 蚁创互联说:品牌营销误区之“做品牌”就是“做广告”
- flash 加载外部flash怎么卸载干净
- linux如何设置显示器亮度调节软件,使用软件调节Ubuntu的屏幕亮度
- [生存志] 第142节 韩赵陈郑燕辽
- 梦幻西游这么火, Python也不甘示弱, Python写游戏辅助软件!
- 传承百年经典的瑞吉管家静待您的优雅旅程再次开启
- 历经18年胡培松创制优良新种质 国稻种芯百团计划行动
- 什么叫明文,什么叫密文,为什么不允许在数据库里明文保存密码?
- 蓝桥杯等差素数列-python