当前位置:我的异常网» 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 图片轮播 遥控器上下按键的处理...相关推荐

  1. web网页设计——体育气步枪射击主题(5页面)带图片轮播特效(HTML+CSS) ~学生网页设计作业源码

    web网页设计--体育气步枪射击主题(5页面)带图片轮播特效(HTML+CSS) ~学生网页设计作业源码 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手 ...

  2. android首页图片轮播效果,Android_Android自动播放Banner图片轮播效果,先看一下效果图支持本地图 - phpStudy...

    Android自动播放Banner图片轮播效果 先看一下效果图 支持本地图片以及网络图片or本地网络混合. 使用方式: android:id="@+id/banner" andro ...

  3. java写轮播图,Android零基础入门第49节:AdapterViewFlipper图片轮播

    上一期学习了ExpandableListView的使用,你已经掌握了吗?本期开始学习AdapterViewFilpper的使用. 一.认识AdapterViewFilpper AdapterViewF ...

  4. android 对讲机 服务器,对讲机功能与Android 4.0系统_手机_手机Android频道-中关村在线...

    对讲功能与Android 4.0系统 Runbo X5三防手机此次采用了比较主流的Android 4.0系统,但是系统基本为原生,并没有太多的定制:不过就像是军车的设计从来都是以性能而不是以车内的豪华 ...

  5. html轮播图兼容ie8,多功能响应式兼容IE8图片轮播

    2016-09-27 10:02:56 前段时间在写一个官网,官网中很多地方都用到了图片轮播,但是需求中要求网站适配到IE8同时具有自适应的特点,适配各种尺寸的浏览器和移动端浏览器.于是我尝试了在网上 ...

  6. Android仿支付宝UI功能开发,Android 自定义view仿支付宝咻一咻功能

    支付宝上有一个咻一咻的功能,就是点击图片后四周有水波纹的这种效果,今天也写一个类似的功能. 效果如下所示: 思路: 就是几个圆的半径不断在变大,这个可以使用动画缩放实现,还有透明动画 还有就是这是好几 ...

  7. android 打开相机拍照功能吗,Android调用相机实现拍照功能

    引言 在Android开发中相信大家都会遇到修改用户头像的问题,用户信息常常包含用户头像,一般流程为:默认头像-->用户修改(拍照/相册选择)-->保存头像图片. 本期我们就来实现调用系统 ...

  8. android 三星调用拍照功能吗,Android 相机开发 三星拍照崩溃修改解决 详细

    android 相机调用问题 三星系统4.0以上, 调用系统相机屏幕会强制切换为横屏 拍照完会切换为竖屏 点击保存回Activity 程序会直接崩溃 : 我理解的是 android系统在手机切换横竖屏 ...

  9. 屏蔽Android系统的WIFI功能 关闭Android系统的实体按键

    屏蔽Android系统的WIFI功能: 1.要root手机  2.安装re管理器 3.进入手机内存/system/bin/wpa_supplicant(文件无后缀). 4.re管理器改成读写模式后, ...

最新文章

  1. 你眼中的OA行业发展前景
  2. php对提交数据转码,如何使用php程序实现媒体转码消息的接收
  3. c++中override的应用
  4. 自然语言处理 —— 2.1 词汇表征
  5. 如何修改默认字体_Excel技巧:怎么修改默认字体为宋体
  6. HDFS- 架构图详细解析
  7. 2015.11-12 maxon电机接线——调试——控制
  8. 计算机visio流程图,系统流程图和Visio
  9. android 表情包下载,超级表情包app下载
  10. 提高计算机CPU运行速度,提高cpu运行速度的方法
  11. 从零开始学WEB前端——网页的骨架——HTML理论讲解
  12. 论劳动生产力进步的原因,兼论劳动产品在不同阶级人民之间自然分配顺序(读后感)
  13. Android序列化之Parcel
  14. 电脑录屏软件帧率设置详解
  15. ciscn_2019_n_4
  16. python实现分词算法代码
  17. 耳机四根线的图解_耳机线材编法汇总
  18. 影视剪辑,如何一个人自学短视频7天vlog教程
  19. 首个富士康商贸综合体落子乐山
  20. 计算机可以不需要显卡吗,显卡有什么用 电脑不装显卡影响大吗

热门文章

  1. python实现骚操作,表白神技:整个朋友圈都是爱你的样子
  2. single cell marker 基因数据库
  3. Word,Excel,PPT等Office文件Web浏览器在线预览
  4. 华为虚拟机服务器怎么使用教程,HUAWEI USG6000V V500R001C20 安装部署指南-安装与部署(VMWare)...
  5. 页内嵌多媒体内容的完美实现
  6. Html5中的input标签之多少
  7. VB之比较三个数的大小
  8. 如何用360极速浏览器下载网页视频
  9. 火狐 附加组件 中无java_关于Win10系统上火狐浏览器附加组件找不到的解决方法...
  10. ISP——LSC(Lens Shading Correction)