- 浏览: 270876 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 5244由于是先写的word文档,所以排版不好,看不清的朋友可以直 ... -
转:Bitmap造成OOM的讨论与解决方案
2012-07-26 16:08 11257android BitmapFactory的OutOfM ... -
【so easy~】自定义上下menu菜单
2012-06-25 18:14 2451最近做了自定义菜单,许多阅读器的样子,都是点击屏幕中央弹 ... -
【so easy】Tabhost每个tab中放入多个Activity!
2012-04-25 18:14 5116最近做完了一个客户端项目 外面是个tabhost(用于底部t ... -
【so easy~】完全退出
2012-03-08 16:52 1755String packagename = getPac ... -
【BUG解决】WebView cookies清理
2012-03-05 15:21 12125今天在项目中发现一个BUG 在使用新浪微博账户登录应用时,w ... -
Project has no default.properties file! Edit the project properties to set one.
2012-02-20 14:02 1874导入新项目 有时会:Project has no def ... -
【so easy~】完全仿QQ好友列表,自定义ExpandableListView!
2012-01-10 16:14 25102最近,需要做一个可展开的listview,不禁想起了Expan ... -
【so easy~】正则表达式常用匹配
2012-01-03 09:31 4501http://androiddada.iteye.c ... -
Android释放内存(结束进程)
2011-12-30 15:45 10214这两天在搞个内存清理小插件,网上很少这方面资料,之前找过清 ... -
android 获得手机信息
2011-12-02 14:22 1385Android中与电话功能相关的类是 Telephony ... -
【so easy~】 Webview离线功能(优先cache缓存+cache缓存管理)!
2011-11-28 17:05 39720在做Webview显示服务器的html功能时 需要加入离线功能 ... -
转!SQL:char、varchar、text和nchar、nvarchar、ntext的区别
2011-11-21 16:07 1780SQL:char、varchar、text和nchar、n ... -
【so easy~】 底部菜单可移动焦点~!(仿网易新闻等应用)
2011-11-18 10:51 3681最近比较懒惰,也没有更新博客。今天就把刚刚实现的一个小效果分享 ... -
转:shape 渐变!描边!圆角!漂亮的自定义背景
2011-11-09 09:47 3980在实现背景渐变的帖子里 http://androi ... -
ListView item渐变背景(ListView必备!)
2011-11-07 15:32 7212在看他人的代码学习时,无意中发现的。很多应用中的ListVi ... -
Android之系统自带的文字外观设置及实际显示效果图
2011-11-07 14:50 1339Android之系统自带的文字外观设置及实际显示效果图 ... -
【so easy~】 Intent实现 <分享>功能!~
2011-10-31 15:06 1539http://androiddada.iteye.com/ ... -
【so easy~】 GPS的那点儿事儿~!
2011-10-28 14:27 2052http://androiddada.iteye.com/ ... -
Service使用总结 与sdk部分翻译
2011-10-27 15:12 17411. Service SDK翻译 ...
相关推荐
基于STM32F407的Easyflash_RTT-STM32F407-Easyflash
互联网资讯,技术简介,IT、AI技术,人工智能
【标题】"安卓Android源码——中英文电子词典源码(soeasy).zip" 提供的是一个基于Android平台的中英文电子词典应用的源代码,名为"soeasy",这是一款专为Android设备设计的软件,旨在帮助用户方便快捷地查找和学习...
安卓项目源码Android中英文电子词典源码(so easy)提取方式是百度网盘分享地址
"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说明书
STM32F103ZET6+FreeRTOS V8.2.3+kfifo(巧夺天工)+EasyFlash,移植 Linux 的 巧夺天工 的KFIFO 到FreeRTOS 环境, 移植 easyflash 到 FreeRTOS。