【问题标题】:rounded corner imageview programmatically以编程方式圆角图像视图
【发布时间】:2020-11-12 12:08:23
【问题描述】:

我想在我的 ImageView 上设置一个圆角,代码如下:

FrameLayout frameLayout = new FrameLayout(this);
            frameLayout.setLayoutParams(up);
            layout.addView(frameLayout);

            CardView cardView = new CardView(this);
            cardView.setCardElevation(0);
            cardView.setRadius(20);
            cardView.setMaxCardElevation(0);
            cardView.setLayoutParams(upz);
            frameLayout.addView(cardView);

            ImageView imageView = new ImageView(this);
            String imageuri = listgambarpromo.get(i);
            if (!this.isFinishing()) {
                Glide.with(getBaseContext())
                        .load(imageuri)
                        .error(R.drawable.promoe)
                        .placeholder(R.drawable.promoe)
                        .skipMemoryCache(true)
                        .diskCacheStrategy(DiskCacheStrategy.ALL)
                        .fitCenter()
                        .into(imageView);
            }
            imageView.setScaleType(ImageView.ScaleType.FIT_XY);
            imageView.setLayoutParams(upz1);
            cardView.addView(imageView);

我已经在 CardView 中设置了 ImageView,但它不起作用并且在角落显示为正方形

我应该如何处理我的代码?

【问题讨论】:

  • @AliEid 图片是方形的,所以我将 CardView 设置为半径
  • 你看到圆角卡片视图了吗?如果没有,请尝试为其设置背景以确保它是圆角的!
  • @AliEid 当我将图像视图设置为较小尺寸时,我看到我的卡片视图带有圆角。但是,当我将 imageview 的宽度设置为 matchparent 时,它变成了正方形..
  • 然后您需要将图像添加到卡片视图本身而不是整个框架布局
  • @AliEid 抱歉,我编辑了我的代码,但还是一样

标签: android imageview rounded-corners


【解决方案1】:

您已经使用 Glide 库来获取图像。所以有 make round 选项

Glide.with(context)
    .load(url)
    .apply(new RequestOptions().transforms(new CenterCrop(), new RoundedCorners(20)))
    .into(imageView);

像这样。

如果你想画圈,

RequestOptions options = new RequestOptions()
                    .circleCrop()
                    .placeholder(R.drawable.img_nonemymenu)
                    .error(R.drawable.img_nonemymenu);

Glide.with(mContext).setDefaultRequestOptions(options)
    .load(url)
    .circleCrop()
    .into(imageView);

像这样。

更多选项,请查看this

【讨论】:

  • 谢谢老哥,成功了!所以如果我添加圆形选项,我就不再需要卡片视图了?
  • 如果你的cardView只包含ImageView,我想你不需要。但如果它包含其他视图,也许你不需要。这取决于您(或您的设计师)
猜你喜欢
  • 1970-01-01
  • 2013-02-12
  • 1970-01-01
  • 1970-01-01
  • 2013-03-22
  • 1970-01-01
  • 1970-01-01
  • 2012-03-24
  • 2023-03-23
相关资源
最近更新 更多