抖音短视频系统开发,加载圆角的图片轮播图

编程入门 行业动态 更新时间:2024-10-23 09:40:10

抖音短视频系统开发,加载<a href=https://www.elefans.com/category/jswz/34/1767438.html style=圆角的图片轮播图"/>

抖音短视频系统开发,加载圆角的图片轮播图

抖音短视频系统开发,加载圆角的图片轮播图相关代码
首先是自定义的RoundImageView:

/*** @author xiejinbo* @date 2019/11/28 0028 13:40*/
public class RoundImageView extends ImageView {private float width,height;private Context context;/*** 初始化圆角为15*/private float radius= 15;public RoundImageView(Context context) {this(context, null);this.context = context;}public RoundImageView(Context context, AttributeSet attrs) {this(context, attrs, 0);this.context = context;}public RoundImageView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);this.context = context;if (Build.VERSION.SDK_INT < 18) {setLayerType(View.LAYER_TYPE_SOFTWARE, null);}}@Overrideprotected void onLayout(boolean changed, int left, int top, int right, int bottom) {super.onLayout(changed, left, top, right, bottom);width = getWidth();height = getHeight();}@Overrideprotected void onDraw(Canvas canvas) {if (width > radius && height > radius) {Path path = new Path();path.moveTo(radius, 0);path.lineTo(width - radius, 0);path.quadTo(width, 0, width, radius);path.lineTo(width, height - radius);path.quadTo(width, height, width - radius, height);path.lineTo(radius, height);path.quadTo(0, height, 0, height - radius);path.lineTo(0, radius);path.quadTo(0, 0, radius, 0);canvas.clipPath(path);}super.onDraw(canvas);}/*** 根据手机的分辨率从 dp 的单位 转成为 px(像素)*/public  int dip2px(Context context, float dpValue) {final float scale = context.getResources().getDisplayMetrics().density;return (int) (dpValue * scale + 0.5f);}/*** 设置图片圆角dp值* @param context* @param radius*/public  void setImageViewRadius(Context context,float radius){this.radius = dip2px(context,radius);}}

然后就是修改我们之前自定义的GlideImageLoader类:

/*** @author xiejinbo* @date 2019/11/18 0018 13:43*/
public class GlideImageLoader extends ImageLoader {//图片圆角弧度private float radius;public GlideImageLoader(float radius){this.radius = radius;}@Overridepublic void displayImage(Context context, Object path, ImageView imageView) {//Glide 加载图片简单用法Glide.with(context).load(path).centerCrop().into(imageView);}/*** 自定义圆角类,这是因为圆角新添加的* @param context* @return*/@Overridepublic ImageView createImageView(Context context) {RoundImageView roundImageView = new RoundImageView(context);roundImageView.setImageViewRadius(context,radius);return roundImageView;}
}

然后就是调用了,由于本页面有两处地方运用了轮播图,我们把轮播图的调用抽取出来,放到公共工具类里面,这样要用时直接调用即可。

/*** @author xiejinbo* @date 2019/11/28 0028 15:20*/
public class Utils {/*** 加载图片轮播图公共方法* @param context 上下文* @param imagesList 图片资源list* @param radius 圆角值*/public static Banner initBanner(Context context, Banner banner, List<String> imagesList, final float radius){//设置图片加载器banner.setImageLoader(new GlideImageLoader(radius));//设置图片集合banner.setImages(imagesList);//banner设置方法全部调用完毕时最后调用banner.start();return banner;}
}

最后在MainFragment里面的调用:

   /*** 加载广告banner轮播图** @param mainLayout*/private void initBanner(View mainLayout) {List<String> images = new ArrayList<>();images.add(".jpg");images.add(".jpg");images.add(".jpg");images.add(".jpg");images.add(".jpg");images.add(".jpg");Banner banner = (Banner) mainLayout.findViewById(R.id.banner);Utils.initBanner(context, banner, images, 0);banner.setOnBannerListener(new OnBannerListener() {@Overridepublic void OnBannerClick(int position) {Toast.makeText(context, "position" + position, Toast.LENGTH_SHORT).show();}});}/*** 加载热门风景轮播图** @param mainLayout*/private void initSceneryHotBanner(View mainLayout) {List<String> images = new ArrayList<>();images.add(".jpg");images.add(".jpg");images.add(".jpg");images.add(".jpg");images.add(".jpg");Banner banner = (Banner) mainLayout.findViewById(R.id.banner_scenery_hot);Utils.initBanner(context, banner, images, 10);banner.setOnBannerListener(new OnBannerListener() {@Overridepublic void OnBannerClick(int position) {Toast.makeText(context, "position" + position, Toast.LENGTH_SHORT).show();}});}

以上就是抖音短视频系统开发,加载圆角的图片轮播图相关代码, 更多内容欢迎关注之后的文章

更多推荐

抖音短视频系统开发,加载圆角的图片轮播图

本文发布于:2024-02-04 20:24:06,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1673311.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:圆角   加载   系统   图片   视频

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!