【问题标题】:Rounded corner ImageView - Android圆角 ImageView - Android
【发布时间】:2015-02-03 10:56:17
【问题描述】:

我尝试创建带有圆角的图像视图。我搜索并找到了 xml 代码

<?xml version="1.0" encoding="utf-8"?>

<solid android:color="#00ffffff" />

<padding
    android:bottom="6dp"
    android:left="6dp"
    android:right="6dp"
    android:top="6dp" />

<corners android:radius="12dp" />

<stroke
    android:width="6dp"
    android:color="#ffffffff" />

这是我的 imageview xml 代码

<ImageView
                android:id="@+id/slidemenuuserimage"
                android:layout_width="90dp"
                android:layout_height="90dp"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_marginBottom="16dp"
                android:layout_marginLeft="14dp"
                android:background="@drawable/frame" />

我有一个问题。当我以编程方式添加背景图像时,我收到了不同的结果。

slidemenuuserimage=(ImageView)findViewById(R.id.slidemenuuserimage);
    slidemenuuserimage.setBackgroundResource(R.drawable.myuserimg);

这是我的结果

如何以编程方式向左或向右添加填充。在我的选项中,这是我的问题 如果有人知道解决方案,请帮助我

【问题讨论】:

  • 现在有什么问题?

标签: android android-imageview rounded-corners


【解决方案1】:

您也可以通过编程方式完成此操作

public Bitmap roundCornerImage(Bitmap raw, float round) {
  int width = raw.getWidth();
  int height = raw.getHeight();
  Bitmap result = Bitmap.createBitmap(width, height, Config.ARGB_8888);
  Canvas canvas = new Canvas(result);
  canvas.drawARGB(0, 0, 0, 0);

  final Paint paint = new Paint();
  paint.setAntiAlias(true);
  paint.setColor(Color.parseColor("#000000"));

  final Rect rect = new Rect(0, 0, width, height);
  final RectF rectF = new RectF(rect);

  canvas.drawRoundRect(rectF, round, round, paint);

  paint.setXfermode(new PorterDuffXfermode(Mode.raw_IN));
  canvas.drawBitmap(raw, rect, rect, paint);

  return result;
 }

像这样使用它

slidemenuuserimage.setImageBitmap(roundCornerImage(BitmapFactory.decodeResource(getResources(), R.drawable.yourImage),50)

【讨论】:

    【解决方案2】:

    试试这个shape

       <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
        <solid android:color="#00ffffff"/>    
    
        <stroke android:width="3dp"
                android:color="#ffffffff"/>
    
        <padding android:left="1dp"
                 android:top="1dp"
                 android:right="1dp"
                 android:bottom="1dp"/> 
    
        <corners android:radius="30px"/> 
    </shape>
    

    代码是here

    【讨论】:

    • 谢谢,但我的问题在于 java 代码 (slidemenuuserimage.setBackgroundResource(R.drawable.myuserimg);) 我该如何解决我的问题? @琼科尔梅内罗
    【解决方案3】:

    你需要设置 src 图片,而不是背景。所以使用setImageResource() 而不是setBackgroundResource()

    【讨论】:

      猜你喜欢
      • 2012-09-15
      • 2021-06-09
      • 1970-01-01
      • 2014-02-01
      • 2017-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多