- 浏览: 270448 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
androidios2014:
运行有滚没有把分组选项置顶,楼主帮忙给个源码学习7196628 ...
【so easy~】完全仿QQ好友列表,自定义ExpandableListView! -
hnu_hgc:
求代码,3243544018@qq.com
Android释放内存(结束进程) -
hnu_hgc:
求代码工程
Android释放内存(结束进程) -
l657757077:
楼主给个源码学习学习。邮箱:657757077@qq.com
【so easy~】完全仿QQ好友列表,自定义ExpandableListView! -
hao_yh:
楼主,修改后的代码能发我一份吗?感谢。感觉现在是只要界面创建就 ...
【so easy~】完全仿QQ好友列表,自定义ExpandableListView!
先上个效果图~
思路是这样的,功能方面:
首先这个是个左右循环的Gallery(其实是Integer.MAX_VALUE = 2147483647 这么多的个啦,接近无限了)。
这个网上有很多,不再赘述。代码里面也有,可以直接下载~
然后就是Gallery的样式,我这里 设置成无阴影的,间距 android:spacing="0dip"。
最后就是下面的指示条了,我使用FrameLayout布局,里面的指示点 radiobuttion.(因为只要一个是点亮的,用于指示当前位置,所以在一个group中)
下面是重要代码:
布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="150dip" >
<com.test.AdvGallery
android:fadingEdge="none"
android:id="@+id/home_advs_gallery"
android:spacing="0dip"
android:layout_width="fill_parent"
android:layout_height="150dip" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="20dip"
android:layout_gravity="bottom"
android:background="#55999999"
android:gravity="center"
android:orientation="horizontal" >
<RadioGroup
android:gravity="center"
android:id="@+id/home_advs_gallery_mark"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</RadioGroup>
</LinearLayout>
</FrameLayout>
</LinearLayout>
自定义Gallery,为了解决Gallery拖拽滑动过快:
public class AdvGallery extends Gallery {
public AdvGallery(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public AdvGallery(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
//返回false 解决Gallery拖拽滑动过快
return false;
}
@Override
public void setUnselectedAlpha(float unselectedAlpha) {
// TODO Auto-generated method stub
unselectedAlpha = 1.0f;
super.setUnselectedAlpha(unselectedAlpha);
}
adapter中的 getview方法:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ImageView imageView = new ImageView(context);
String curr_URL = imgURL.get(position%imgURL.size());
imageView.setTag(curr_URL);
Drawable cachedImage = asyncImageLoader.loadDrawable(context,curr_URL,new ImageCallback1() {
@Override
public void imageLoaded(Drawable imageDrawable, String imageUrl) {
ImageView imageViewByTag = (ImageView) gallery.findViewWithTag(imageUrl);
if (imageViewByTag != null && imageDrawable != null ) {
imageViewByTag.setImageDrawable(imageDrawable);
notifyDataSetChanged();
}
}
});
if (cachedImage != null) {
imageView.setImageDrawable(cachedImage);
}else{
imageView.setImageResource(R.drawable.ic_launcher);
}
// 设置边界对齐
imageView.setAdjustViewBounds(true);
imageView.setLayoutParams(new Gallery.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
//设置比例类型
// imageView.setScaleType(ImageView.ScaleType.FIT_XY);
return imageView;
}
main中的oncreate:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
_radioGroup = (RadioGroup) findViewById(R.id.home_advs_gallery_mark);
_adv_Gallery = (Gallery) findViewById(R.id.home_advs_gallery);
_advGalleryAdapter = new AdvGalleryAdapter(ADV_GalleryActivity.this,_adv_imgURL,_adv_Gallery);
_adv_Gallery.setAdapter(_advGalleryAdapter);
_adv_Gallery.setSelection(Integer.MAX_VALUE >> 1);
_adv_Gallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
_radioGroup.check(arg2%_adv_imgURL.size()); //Gallery焦点图片改变时 更改RadioGroup
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
//图片地址
_adv_imgURL.add("http://www.baidu.com/img/baidu_sylogo1.gif");
_adv_imgURL.add("http://www.iteye.com/images/logo.gif?1308833136");
_adv_imgURL.add("http://csdnimg.cn/www/images/csdnindex_logo.gif");
for(int i=0;i<_adv_imgURL.size();i++){
RadioButton rb = new RadioButton(ADV_GalleryActivity.this);
rb.setId(i);
rb.setButtonDrawable(R.drawable.adv_gallery_mark_selector);
rb.setClickable(false);
_radioGroup.addView(rb);
}
}
由于代码比较多,放上源码,希望大家能用到~!
评论
9 楼
我姓张
2014-07-07
8 楼
我姓张
2014-07-07
7 楼
mikola
2013-02-23
这个很好啊.谢谢.
6 楼
anson86s
2012-09-10
太厲害了!!感謝樓主的分享
5 楼
yanhua_it
2012-04-09
下面那个radiogroup之间的间距应如何改变呢,貌似间距太宽了,有什么好的方法可以解决吗?
4 楼
warnerhit
2012-02-29
libo19881179 写道
warnerhit 写道
灰常感谢。我遇到一个问题
放上这句:imageView.setScaleType(ImageView.ScaleType.FIT_XY); 后就可以全屏,但是无法缩放图片了(扩展了Gallery)
放上这句:imageView.setScaleType(ImageView.ScaleType.FIT_XY); 后就可以全屏,但是无法缩放图片了(扩展了Gallery)
你说的不太清楚,缩放图片?
是的,对Gallery显示的ImageView重写实现了缩放和拖拽功能,在getView()方法中返回重写的ImageView,如果设置imageView.setScaleType(ImageView.ScaleType.FIT_XY); 话,就不能缩放了,不写这句代码的话则可以。
3 楼
yangjiantong
2012-02-09
如何让图片每隔2秒自动切换呢?
2 楼
libo19881179
2011-12-22
warnerhit 写道
灰常感谢。我遇到一个问题
放上这句:imageView.setScaleType(ImageView.ScaleType.FIT_XY); 后就可以全屏,但是无法缩放图片了(扩展了Gallery)
放上这句:imageView.setScaleType(ImageView.ScaleType.FIT_XY); 后就可以全屏,但是无法缩放图片了(扩展了Gallery)
你说的不太清楚,缩放图片?
1 楼
warnerhit
2011-12-22
灰常感谢。我遇到一个问题
放上这句:imageView.setScaleType(ImageView.ScaleType.FIT_XY); 后就可以全屏,但是无法缩放图片了(扩展了Gallery)
放上这句:imageView.setScaleType(ImageView.ScaleType.FIT_XY); 后就可以全屏,但是无法缩放图片了(扩展了Gallery)
发表评论
-
【so easy】Android手动打包流程,完全详细版!
2012-08-09 12:19 5238由于是先写的word文档,所以排版不好,看不清的朋友可以直 ... -
转:Bitmap造成OOM的讨论与解决方案
2012-07-26 16:08 11243android BitmapFactory的OutOfM ... -
【so easy~】自定义上下menu菜单
2012-06-25 18:14 2431最近做了自定义菜单,许多阅读器的样子,都是点击屏幕中央弹 ... -
【so easy】Tabhost每个tab中放入多个Activity!
2012-04-25 18:14 5109最近做完了一个客户端项目 外面是个tabhost(用于底部t ... -
【so easy~】完全退出
2012-03-08 16:52 1742String packagename = getPac ... -
【BUG解决】WebView cookies清理
2012-03-05 15:21 12110今天在项目中发现一个BUG 在使用新浪微博账户登录应用时,w ... -
Project has no default.properties file! Edit the project properties to set one.
2012-02-20 14:02 1871导入新项目 有时会:Project has no def ... -
【so easy~】完全仿QQ好友列表,自定义ExpandableListView!
2012-01-10 16:14 25080最近,需要做一个可展开的listview,不禁想起了Expan ... -
【so easy~】正则表达式常用匹配
2012-01-03 09:31 4494http://androiddada.iteye.c ... -
Android释放内存(结束进程)
2011-12-30 15:45 10209这两天在搞个内存清理小插件,网上很少这方面资料,之前找过清 ... -
android 获得手机信息
2011-12-02 14:22 1375Android中与电话功能相关的类是 Telephony ... -
【so easy~】 Webview离线功能(优先cache缓存+cache缓存管理)!
2011-11-28 17:05 39711在做Webview显示服务器的html功能时 需要加入离线功能 ... -
转!SQL:char、varchar、text和nchar、nvarchar、ntext的区别
2011-11-21 16:07 1773SQL:char、varchar、text和nchar、n ... -
【so easy~】 底部菜单可移动焦点~!(仿网易新闻等应用)
2011-11-18 10:51 3665最近比较懒惰,也没有更新博客。今天就把刚刚实现的一个小效果分享 ... -
转:shape 渐变!描边!圆角!漂亮的自定义背景
2011-11-09 09:47 3977在实现背景渐变的帖子里 http://androi ... -
ListView item渐变背景(ListView必备!)
2011-11-07 15:32 7198在看他人的代码学习时,无意中发现的。很多应用中的ListVi ... -
Android之系统自带的文字外观设置及实际显示效果图
2011-11-07 14:50 1326Android之系统自带的文字外观设置及实际显示效果图 ... -
【so easy~】 Intent实现 <分享>功能!~
2011-10-31 15:06 1535http://androiddada.iteye.com/ ... -
【so easy~】 GPS的那点儿事儿~!
2011-10-28 14:27 2048http://androiddada.iteye.com/ ... -
Service使用总结 与sdk部分翻译
2011-10-27 15:12 17271. Service SDK翻译 ...
相关推荐
互联网资讯,技术简介,IT、AI技术,人工智能
【标题】"安卓Android源码——中英文电子词典源码(soeasy).zip" 提供的是一个基于Android平台的中英文电子词典应用的源代码,名为"soeasy",这是一款专为Android设备设计的软件,旨在帮助用户方便快捷地查找和学习...
"SoEasy办公效率平台"是一款专为提升个人和团队办公效率设计的应用软件。这款平台集成了多种实用功能,旨在简化日常办公任务,提高工作效率。作为一款"办公好助手",它可能包含了文档管理、项目协作、日程规划、任务...
【Android源码——中英文电子词典源码(so easy)】 这个压缩包包含了一个基于Android平台的中英文电子词典应用的源代码。开发者通过这份源码可以深入理解Android应用开发,特别是针对语言学习应用的开发技术。下面...
本项目“Android应用设计源码-中英文电子词典源码so easy”提供了这样一个实例,对于初学者或希望提升Android技能的开发者来说,是一个宝贵的资源。 首先,我们要了解Android应用的基本结构。一个标准的Android应用...
Android中英文电子词典源码(so easy).zip项目安卓应用源码下载Android中英文电子词典源码(so easy).zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
这个名为"Android中英文电子词典源码(so easy)"的项目,显然是为了简化这个过程,让开发者能够快速上手。下面将详细解析该项目中的关键知识点。 首先,我们需要了解Android应用的基本结构。一个典型的Android应用...
【标题】"Android源码——中英文电子词典源码(so easy).7z" 涉及的是一个Android应用程序开发项目,该项目旨在创建一个功能完善的中英文电子词典。开发者通过这个源码可以深入理解Android应用的构建过程,特别是...
标题 "EasyFlash.zip" 涉及到的是一个开源框架 EasyFlash 的移植,该框架专为 STM32 微控制器的HAL库开发设计,适用于裸机编程环境。EasyFlash 提供了非易失性存储解决方案,能够方便地在STM32的闪存中进行数据的...
【简单图床-EasyImage2.0源码】是一个用于创建图片上传网站的源码资源,它提供了方便快捷的方式来托管用户上传的图片。这个源码主要用于开发者或个人想要搭建一个自己的图片存储服务,以替代公共图床或者第三方云...
SoEasy办公效率平台是一款办公人员必备工具。提供最易用、最集中、最专业OFFICE资源。 SoEasy办公效率平台功能: 1、包含Office中多个组件海量培训视频(Word,Excel,PowerPoint,Outlook等)。 2、文档及PPT...
SoEasy办公效率平台,为提供办公人员办公必备工具,是全国最全面、最专业、最实用的办公辅助工具,专为提升办公能力,及办公效率的学习平台,由数名微软金牌讲师、资深顾问等组成的专家团队,以快速提升个人工作效率...
JQuery Easy UI 是一个基于 jQuery 的前端框架,它提供了一系列易于使用的组件,如对话框、表格、下拉菜单、树形结构等,帮助开发者快速构建用户界面。这个框架的源码解析将帮助我们深入理解其内部工作原理,优化...
unity 菜单UI系统源码UMenu Gallery UMenu Gallery is a functional design Menu interface with a gallery effect, the UI design is highly customizable and pretty easy to use, You can edit it "on the fly" ...
温度报警器SOEASY2010说明书
物联网So Easy 基于Blynk平台的IOT项目实践 配套资源 本书是经典的、畅销的Spring学习和实践指南。第5版针对Spring 5进行了全面更新。第5版涵盖了Spring 5.0和Spring Boot 2.0里程碑式的更新。 全书分为5个部分,...
《Easy Messenger 源码解析:打造无需服务器的局域网通信神器》 在现代通讯技术日新月异的时代,一款名为"Easy Messenger"的应用以其独特的功能吸引了人们的注意。这款应用主打无需服务器的局域网通信,具备文件...
**WordPress相册插件Easy Image Gallery深度解析** 在WordPress网站中,展示图片和创建美观的相册是增强用户体验的关键部分。Easy Image Gallery是一款强大的WordPress相册插件,它旨在简化这个过程,为用户提供一...