首页 文章 精选 留言 我的

精选列表

搜索[表格控件],共10000篇文章
优秀的个人博客,低调大师

Android--自定义控件(图片轮播)

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/72329936 效果图: 方法一:原理就是利用定时任务器定时切换ViewPager的页面 import java.util.ArrayList; import android.os.Bundle; import android.app.Activity; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.LinearLayout.LayoutParams; import android.widget.TextView; public class MainActivity extends Activity { private ViewPager viewPager; private TextView tv_intro; private LinearLayout dot_layout; private ArrayList<Ad> list = new ArrayList<Ad>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initView(); initListener(); initData(); } private void initView() { setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.viewPager); tv_intro = (TextView) findViewById(R.id.tv_intro); dot_layout = (LinearLayout) findViewById(R.id.dot_layout); } private void initListener() { viewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { Log.e("Activity", "position: "+position); updateIntroAndDot(); } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageScrollStateChanged(int state) { } }); } private void initData() { list.add(new Ad(R.drawable.a, "巩俐不低俗,我就不能低俗")); list.add(new Ad(R.drawable.b, "朴树又回来了,再唱经典老歌引百万人同唱啊")); list.add(new Ad(R.drawable.c, "揭秘北京电影如何升级")); list.add(new Ad(R.drawable.d, "乐视网TV版大放送")); list.add(new Ad(R.drawable.e, "热血屌丝的反杀")); initDots(); viewPager.setAdapter(new MyPagerAdapter()); updateIntroAndDot(); } /** * 初始化dot */ private void initDots(){ for (int i = 0; i < list.size(); i++) { View view = new View(this); LayoutParams params = new LayoutParams(8, 8); if(i!=0){ params.leftMargin = 5; } view.setLayoutParams(params); view.setBackgroundResource(R.drawable.selector_dot); dot_layout.addView(view); } } /** * 更新文本 */ private void updateIntroAndDot(){ int currentPage = viewPager.getCurrentItem()%list.size(); tv_intro.setText(list.get(currentPage).getIntro()); for (int i = 0; i < dot_layout.getChildCount(); i++) { dot_layout.getChildAt(i).setEnabled(i==currentPage); } } class MyPagerAdapter extends PagerAdapter{ /** * 返回多少page */ @Override public int getCount() { return 100; } /** * true: 表示不去创建,使用缓存 false:去重新创建 * view: 当前滑动的view * object:将要进入的新创建的view,由instantiateItem方法创建 */ @Override public boolean isViewFromObject(View view, Object object) { return view==object; } /** * 类似于BaseAdapger的getView方法 * 用了将数据设置给view * 由于它最多就3个界面,不需要viewHolder */ @Override public Object instantiateItem(ViewGroup container, int position) { View view = View.inflate(MainActivity.this, R.layout.adapter_ad, null); ImageView imageView = (ImageView) view.findViewById(R.id.image); Ad ad = list.get(position%list.size()); imageView.setImageResource(ad.getIconResId()); container.addView(view);//一定不能少,将view加入到viewPager中 return view; } /** * 销毁page * position: 当前需要消耗第几个page * object:当前需要消耗的page */ @Override public void destroyItem(ViewGroup container, int position, Object object) { // super.destroyItem(container, position, object); container.removeView((View) object); } } } 方法二: 使用开源框架RollViewPager,下载地址:https://github.com/Jude95/RollViewPager 1、在gradle中导入包 compile 'com.jude:rollviewpager:1.2.9' 2、设置播放时间间隔、透明度、指示器(指示器可以是默认原点,数字,也可以自定义图片。 3、设置适配器,本demo中是StaticPagerAdapter,这个比较简单,用的比较多,有其他需要的可以看github源码。 import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.jude.rollviewpager.RollPagerView; import com.jude.rollviewpager.adapter.StaticPagerAdapter; import com.jude.rollviewpager.hintview.ColorPointHintView; public class MainActivity extends AppCompatActivity { private RollPagerView mRollViewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRollViewPager = (RollPagerView) findViewById(R.id.roll_view_pager); //设置播放时间间隔 mRollViewPager.setPlayDelay(1000); //设置透明度 mRollViewPager.setAnimationDurtion(500); //设置适配器 mRollViewPager.setAdapter(new TestNormalAdapter()); //设置指示器(顺序依次) //自定义指示器图片 //设置圆点指示器颜色 //设置文字指示器 //隐藏指示器 //mRollViewPager.setHintView(new IconHintView(this, R.drawable.point_focus, R.drawable.point_normal)); mRollViewPager.setHintView(new ColorPointHintView(this, Color.YELLOW,Color.WHITE)); //mRollViewPager.setHintView(new TextHintView(this)); //mRollViewPager.setHintView(null); } private class TestNormalAdapter extends StaticPagerAdapter { private int[] imgs = { R.drawable.img1, R.drawable.img2, R.drawable.img3, R.drawable.img4, }; @Override public View getView(ViewGroup container, int position) { ImageView view = new ImageView(container.getContext()); view.setImageResource(imgs[position]); view.setScaleType(ImageView.ScaleType.CENTER_CROP); view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); return view; } @Override public int getCount() { return imgs.length; } } }

优秀的个人博客,低调大师

jQuery 3.7.1 发布,修复表格变“圆角”问题

jQuery 3.7.1 已发布。 新版本修复了来自 jQuery 3.6.0 的回归错误,该错误导致在 Chrome 和 Safari 中<tr />的元素变为圆角。此外,开发者在 jQuery 3.7.0 中删除 Sizzle 时,jQuery 对象上的(主要是)内部 Sizzle 方法jQuery.find.tokenize被意外删除。在新版本中该方法已恢复。 在 3.7.0 中,开发者放弃了长期使用的选择器引擎 Sizzle ——jQuery 不再依赖于作为单独项目的 Sizzle。开发者表示他已经将 Sizzle 移动至 jQuery 内部,将其代码直接放到 jQuery 核心。 据称这有助于为未来 jQuery 版本中选择器的重要变化做好准备。虽然现在意义不大,但 jQuery 体积减少了几个字节。因为 Sizzle 支持比 jQuery 更旧的浏览器。 详情查看发布公告。 jQuery 是一个快速、小型且功能丰富的 JavaScript 库。通过易于使用的 API(可在多种浏览器中使用),使 HTML 文档的遍历和操作、事件处理、动画和 Ajax 等操作变得更加简单。结合了多功能性和可扩展性,jQuery 改变了数百万人编写 JavaScript 的方式。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册