【问题标题】:Add border to ImageView Android with Universal Image Loader使用 Universal Image Loader 为 ImageView Android 添加边框
【发布时间】:2014-12-26 10:37:07
【问题描述】:

我想在我的 ImageView 周围添加一个边框(白色)。

这是布局的代码:

<ImageView
                android:id="@+id/detail_annonce_image_user"
                android:layout_width="65dp"
                android:layout_height="65dp"
                android:layout_alignParentRight="true"
                android:layout_marginRight="30dp"
                android:layout_marginTop="225dp"
                android:scaleType="centerCrop"
                android:src="@drawable/avatar1" />

这里是 JAVA 代码:

    options = new DisplayImageOptions.Builder()
            .displayer(new RoundedBitmapDisplayer(2000))
            .cacheOnDisc(true)
            .build();

if (avatarUser.contains("avatar") == true) {
    if (avatarUser.equals("avatar1")) {
        imageUser_txt.setImageResource(R.drawable.avatar1) ;
    }
    else if (avatarUser.equals("avatar2")) {
        imageUser_txt.setImageResource(R.drawable.avatar2) ;
    }
    else if (avatarUser.equals("avatar3")) {
        imageUser_txt.setImageResource(R.drawable.avatar3) ;
    }
    else if (avatarUser.equals("avatar4")) {
        imageUser_txt.setImageResource(R.drawable.avatar4) ;
    }
    else if (avatarUser.equals("avatar5")) {
        imageUser_txt.setImageResource(R.drawable.avatar5) ;
    }
    else if (avatarUser.equals("avatar6")) {
        imageUser_txt.setImageResource(R.drawable.avatar6) ;
    }
    else {
        imageUser_txt.setImageResource(R.drawable.avatar1) ;
    }

} else {
    imageLoader.displayImage(avatarUser, imageUser_txt, options);
}

imageUser_txt.bringToFront();

【问题讨论】:

  • 你有没有得到解决方案来提供 imageview android 周围的边框..你能帮帮我吗..谢谢'

标签: android android-imageview universal-image-loader


【解决方案1】:

您需要通过扩展 ImageView 来创建自定义图像视图。使用以下代码在布局 xml 文件中使用此 ImageView,您可以在图像视图周围创建白条

public class CustomImageView extends ImageView {
private Context myCtx;
private int borderSize = 6;
Bitmap bmp;
Bitmap bmpWithBorder;
private Drawable drawable;
public CustomImageView(Context context) {
super(context);
myCtx = context;
// TODO Auto-generated constructor stub
}
public CustomImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
myCtx = context;
}
public CustomImageView(Context context, AttributeSet attrs) {
super(context, attrs);
myCtx = context;
}
/* (non-Javadoc)
* @see android.widget.ImageView#onDraw(android.graphics.Canvas)
*/
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
try{
drawable = getDrawable();
bmp = ((BitmapDrawable)drawable).getBitmap() ;
bmpWithBorder = Bitmap.createBitmap(bmp.getWidth() + borderSize * 2, bmp.getHeight() + borderSize * 2, bmp.getConfig());
canvas.drawBitmap(bmpWithBorder, 0 , 0 , null);
canvas.drawColor(Color.WHITE);
Resources res = myCtx.getResources();
canvas.drawBitmap(bmp, borderSize, borderSize, null);
}
catch (NullPointerException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}

【讨论】:

  • 谢谢,你能添加一个使用这个自定义类的例子吗?
  • 把这个类放在任何包里。假设你的包是 com.sample.example。将布局文件夹中的 Imageview 替换为 com.sample.example.CustomImageView
  • 我忘了说这是使用 UIL 的圆形图像显示器。此代码是否能够在我的圆形图像视图周围添加边框? (我更新代码)
  • 你不想使用你的 ImageView。用这个自定义图像视图替换你的 ImageView
【解决方案2】:

为您的 ImageView 添加填充和背景。内边距是边框的宽度,背景是边框的颜色。

<ImageView
       android:id="@+id/detail_annonce_image_user"
       android:layout_width="65dp"
       android:layout_height="65dp"
       android:layout_alignParentRight="true"
       android:layout_marginRight="30dp"
       android:layout_marginTop="225dp"
       android:scaleType="centerCrop"
       android:src="@drawable/avatar1"
       android:padding="5dp"
       android:background="#ffffff" />

【讨论】:

  • 谢谢,但此代码添加了一个白色边框作为形状。我使用圆形图像视图。
  • 所以你可以试试这个stackoverflow.com/questions/27636855/…
  • 完美! Npw 我的图像视图有一个边框,但还有一个问题:我的图像太大,在圆形图像中并非全部可见。我必须调整哪个参数?
  • 我不完全理解您的问题。尝试使用不同的 android:scaleType
  • 我从您的链接中添加了代码,并为元素添加了布局宽度和布局高度。结果是我在 imageview 周围创建了一个圆形边框,但是我在 imageview 中的图像太大了。好像布局的宽度和高度被忽略了..
猜你喜欢
  • 2019-01-13
  • 1970-01-01
  • 2012-12-14
  • 1970-01-01
  • 2020-03-24
  • 1970-01-01
  • 2013-10-17
  • 1970-01-01
  • 2012-11-01
相关资源
最近更新 更多