android设计轮播功能按钮,Android TV HorizontalScrollView 图片轮播 遥控器上下按键的处理...
当前位置:我的异常网» Android » Android TV HorizontalScrollView 图片轮播 遥控器
Android TV HorizontalScrollView 图片轮播 遥控器上下按键的处理
www.myexceptions.net 网友分享于:2013-07-22 浏览:0次
Android TV HorizontalScrollView 图片轮播 遥控器左右按键的处理
/**
* 加载下一张图片
*/
protected void loadNextImg()
{
View view;
// int oldViewPos = mContainer.getChildCount() - 1;
// mViewPos.remove(mContainer.getChildAt(oldViewPos));
// mContainer.removeViewAt(oldViewPos);
//移除第一张图片,且将水平滚动位置置0
// scrollTo(0, 0);
mViewPos.remove(mContainer.getChildAt(0));
mContainer.removeViewAt(0);
//获取下一张图片,并且设置onclick事件,且加入容器中
Log.d("mContainer"," mCurrentIndex=" + mCurrentIndex + " mAdapter.getCount() = " + mAdapter.getCount() );
if(mCurrentIndex == mAdapter.getCount() - 1){
Log.d("mCurrentIndex","mCurrentIndex = " + mCurrentIndex);
Log.d("mAdapter.getCount() - 1","mAdapter.getCount() - 1 = " + mAdapter.getCount());
view = mAdapter.getView(0, null, mContainer);
Log.d("view","0 = " + 0);
mCurrentIndex = 0;
}else{
view = mAdapter.getView(++mCurrentIndex, null, mContainer);
Log.d("view","mCurrentIndex = " + mCurrentIndex);
}
view.setOnClickListener(this);
mContainer.addView(view);
Log.d("mCurrentIndex",mCurrentIndex + "");
// if(keyCodevalue == 1){
// mViewPos.put(view, mCurrentIndex - 1);
// } else{
mViewPos.put(view, mCurrentIndex);
// }
Log.d("mContainer","++++++++ mCurrentIndex=" + mCurrentIndex + " mAdapter.getCount() = " + mAdapter.getCount() );
//此处试验很多次 只能这样将诶绝了,但是滑动还有一点问题
scrollTo((findViewById(R.id.id_gallery).getWidth()), 0);
smoothScrollBy(-(findViewById(R.id.id_gallery).getWidth()), 0);
Log.d("id",(findViewById(R.id.id_gallery).getWidth()) + "");
Log.d("mChildWidth",mChildWidth + "");
//当前第一张图片小标
if(mFristIndex == mAdapter.getCount() - 1){
mFristIndex = 0;
} else {
mFristIndex++;
}
Log.d(TAG,mFristIndex + " ");
//如果设置了滚动监听则触发
Log.d("mContainer","++++++++ mCurrentIndex=" + mCurrentIndex + " mFristIndex = " + mFristIndex );
}
/**
* 加载前一张图片
*/
protected void loadPreImg()
{
int oldViewPos = mContainer.getChildCount() - 1;
Log.d("oldViewPos","oldViewPos = "+ oldViewPos);
Log.d("mFristIndex","mFristIndex = "+ mFristIndex);
if (mFristIndex == 0) {
mViewPos.remove(mContainer.getChildAt(oldViewPos));
mContainer.removeViewAt(oldViewPos);
View view = mAdapter.getView(mAdapter.getCount() - 1, null,
mContainer);
Log.d("view","mAdapter.getCount() - 1" + mAdapter.getCount());
mViewPos.put(view, mAdapter.getCount() - 1);
mContainer.addView(view, 0);
view.setOnClickListener(this);
// 水平滚动位置向左移动view的宽度个像素
scrollTo(0, 0);
Log.d("mChildWidth","mChildWidth ="+mChildWidth);
mFristIndex = mAdapter.getCount() - 1;
Log.d("mFristIndex","mFristIndex = "+mFristIndex);
} else {
int index = mCurrentIndex - mCountOneScreen;
Log.d("mCurrentIndex","mCurrentIndex "+ mCurrentIndex);
Log.d("mCountOneScreen","mCountOneScreen "+ mCountOneScreen);
Log.d("index","mCurrentIndex - mCountOneScreen = "+ index);
if (index >= 0) {
mViewPos.remove(mContainer.getChildAt(oldViewPos));
mContainer.removeViewAt(oldViewPos);
View view = mAdapter.getView(index, null, mContainer);
Log.d("view","index = " + index);
mViewPos.put(view, index);
mContainer.addView(view, 0);
view.setOnClickListener(this);
// 水平滚动位置向左移动view的宽度个像素
scrollTo(0, 0);
Log.d("mChildWidth","mChildWidth = "+mChildWidth);
mFristIndex--;
Log.d("mFristIndex","mFristIndex = "+mFristIndex);
} else {
mViewPos.remove(mContainer.getChildAt(oldViewPos));
mContainer.removeViewAt(oldViewPos);
View view = mAdapter.getView(index + mAdapter.getCount(), null,
mContainer);
Log.d("view","index + mAdapter.getCount() = " + index + mAdapter.getCount());
mViewPos.put(view, index + mAdapter.getCount());
mContainer.addView(view, 0);
view.setOnClickListener(this);
// 水平滚动位置向左移动view的宽度个像素
scrollTo(0, 0);
Log.d("mChildWidth","mChildWidth = "+mChildWidth);
// 当前位置--,当前第一个显示的下标--
mFristIndex--;
Log.d("mFristIndex","mFristIndex = "+mFristIndex);
}
}
mCurrentIndex = mViewPos
.get(mContainer.getChildAt(mCountOneScreen - 1));
Log.d("mCurrentIndex","mCurrentIndex = "+mCurrentIndex);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(keyCode == event.KEYCODE_DPAD_LEFT){
Log.d("keyCodevalue","keyCodevalue = " + keyCodevalue);
if(keyCodevalue == 2){
Log.d("keyCodevalue","zhixing = " + keyCodevalue);
} else {
loadPreImg();
}
keyCodevalue = 1;
}else if(keyCode == event.KEYCODE_DPAD_RIGHT){
Log.d("keyCodevalue","keyCodevalue = " + keyCodevalue);
if(keyCodevalue == 1){
Log.d("keyCodevalue","zhixing = " + keyCodevalue);
} else {
loadNextImg();
}
keyCodevalue = 2;
if(keyCodevalue == 1){ //当之前按下的是鼠标左键的情况下,执行
for (int i = 0; i < mContainer.getChildCount(); i++)
{
mContainer.getChildAt(i).setBackgroundColor(Color.WHITE);
}
mListener.onCurrentImgChanged(mFristIndex, mContainer.getChildAt(0));
} else {
for (int i = 0; i < mContainer.getChildCount(); i++)
{
mContainer.getChildAt(i).setBackgroundColor(Color.WHITE);
}
mListener.onCurrentImgChanged(mFristIndex, mContainer.getChildAt(1));
}
return true;
}
if(keyCodevalue == 1){ //当之前按下的是鼠标左键的情况下,执行
for (int i = 0; i < mContainer.getChildCount(); i++)
{
mContainer.getChildAt(i).setBackgroundColor(Color.WHITE);
}
mListener.onCurrentImgChanged(mFristIndex, mContainer.getChildAt(0));
} else {
for (int i = 0; i < mContainer.getChildCount(); i++)
{
mContainer.getChildAt(i).setBackgroundColor(Color.WHITE);
}
mListener.onCurrentImgChanged(mFristIndex, mContainer.getChildAt(1));
}
Log.d("keyCodeValue","mFristIndex = " + mFristIndex);
return super.onKeyDown(keyCode, event);
}
文章评论
android设计轮播功能按钮,Android TV HorizontalScrollView 图片轮播 遥控器上下按键的处理...相关推荐
- web网页设计——体育气步枪射击主题(5页面)带图片轮播特效(HTML+CSS) ~学生网页设计作业源码
web网页设计--体育气步枪射击主题(5页面)带图片轮播特效(HTML+CSS) ~学生网页设计作业源码 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手 ...
- android首页图片轮播效果,Android_Android自动播放Banner图片轮播效果,先看一下效果图支持本地图 - phpStudy...
Android自动播放Banner图片轮播效果 先看一下效果图 支持本地图片以及网络图片or本地网络混合. 使用方式: android:id="@+id/banner" andro ...
- java写轮播图,Android零基础入门第49节:AdapterViewFlipper图片轮播
上一期学习了ExpandableListView的使用,你已经掌握了吗?本期开始学习AdapterViewFilpper的使用. 一.认识AdapterViewFilpper AdapterViewF ...
- android 对讲机 服务器,对讲机功能与Android 4.0系统_手机_手机Android频道-中关村在线...
对讲功能与Android 4.0系统 Runbo X5三防手机此次采用了比较主流的Android 4.0系统,但是系统基本为原生,并没有太多的定制:不过就像是军车的设计从来都是以性能而不是以车内的豪华 ...
- html轮播图兼容ie8,多功能响应式兼容IE8图片轮播
2016-09-27 10:02:56 前段时间在写一个官网,官网中很多地方都用到了图片轮播,但是需求中要求网站适配到IE8同时具有自适应的特点,适配各种尺寸的浏览器和移动端浏览器.于是我尝试了在网上 ...
- Android仿支付宝UI功能开发,Android 自定义view仿支付宝咻一咻功能
支付宝上有一个咻一咻的功能,就是点击图片后四周有水波纹的这种效果,今天也写一个类似的功能. 效果如下所示: 思路: 就是几个圆的半径不断在变大,这个可以使用动画缩放实现,还有透明动画 还有就是这是好几 ...
- android 打开相机拍照功能吗,Android调用相机实现拍照功能
引言 在Android开发中相信大家都会遇到修改用户头像的问题,用户信息常常包含用户头像,一般流程为:默认头像-->用户修改(拍照/相册选择)-->保存头像图片. 本期我们就来实现调用系统 ...
- android 三星调用拍照功能吗,Android 相机开发 三星拍照崩溃修改解决 详细
android 相机调用问题 三星系统4.0以上, 调用系统相机屏幕会强制切换为横屏 拍照完会切换为竖屏 点击保存回Activity 程序会直接崩溃 : 我理解的是 android系统在手机切换横竖屏 ...
- 屏蔽Android系统的WIFI功能 关闭Android系统的实体按键
屏蔽Android系统的WIFI功能: 1.要root手机 2.安装re管理器 3.进入手机内存/system/bin/wpa_supplicant(文件无后缀). 4.re管理器改成读写模式后, ...
最新文章
- 你眼中的OA行业发展前景
- php对提交数据转码,如何使用php程序实现媒体转码消息的接收
- c++中override的应用
- 自然语言处理 —— 2.1 词汇表征
- 如何修改默认字体_Excel技巧:怎么修改默认字体为宋体
- HDFS- 架构图详细解析
- 2015.11-12 maxon电机接线——调试——控制
- 计算机visio流程图,系统流程图和Visio
- android 表情包下载,超级表情包app下载
- 提高计算机CPU运行速度,提高cpu运行速度的方法
- 从零开始学WEB前端——网页的骨架——HTML理论讲解
- 论劳动生产力进步的原因,兼论劳动产品在不同阶级人民之间自然分配顺序(读后感)
- Android序列化之Parcel
- 电脑录屏软件帧率设置详解
- ciscn_2019_n_4
- python实现分词算法代码
- 耳机四根线的图解_耳机线材编法汇总
- 影视剪辑,如何一个人自学短视频7天vlog教程
- 首个富士康商贸综合体落子乐山
- 计算机可以不需要显卡吗,显卡有什么用 电脑不装显卡影响大吗
热门文章
- python实现骚操作,表白神技:整个朋友圈都是爱你的样子
- single cell marker 基因数据库
- Word,Excel,PPT等Office文件Web浏览器在线预览
- 华为虚拟机服务器怎么使用教程,HUAWEI USG6000V V500R001C20 安装部署指南-安装与部署(VMWare)...
- 页内嵌多媒体内容的完美实现
- Html5中的input标签之多少
- VB之比较三个数的大小
- 如何用360极速浏览器下载网页视频
- 火狐 附加组件 中无java_关于Win10系统上火狐浏览器附加组件找不到的解决方法...
- ISP——LSC(Lens Shading Correction)