将图像更改为菜单内的圆圈
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将图像更改为菜单内的圆圈相关的知识,希望对你有一定的参考价值。
如何将此图像更改为圆形
毕加索
navigationDrawerHome.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
if(item.getItemId() == R.id.menu_facebook)
{
navigationDrawerHome.getMenu().findItem(R.id.menu_login).setVisible(false);
navigationDrawerHome.getMenu().findItem(R.id.menu_logout).setVisible(true);
Picasso.with(Home.this).load("http-----").into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
navigationDrawerHome.getMenu().findItem(R.id.menu_logout).setIcon(new BitmapDrawable(bitmap));
navigationDrawerHome.getMenu().findItem(R.id.menu_logout).setTitle("Taha Sami");
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
});
}
return true;
}
});
我怎么能把图片变成圆圈?
答案
以下是最简单的方法之一,使用以下代码:
依赖
dependencies {
...
compile 'de.hdodenhof:circleimageview:2.1.0'
}
XML code
<de.hdodenhof.circleimageview.CircleImageView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/profile_image"
android:layout_width="96dp"
android:layout_height="96dp"
android:src="@drawable/profile"
app:civ_border_width="2dp"
app:civ_border_color="#FF000000"/>
截图:
资料来源:ImageView in circular through xml
另一答案
创建CircleImageView
类并扩展ImageView
public class CircleImageView extends ImageView {
//you can change the radius to modify the circlur shape into oval or rounded rectangle
public static float radius = 1000.0f;
public CircleImageView(Context context) {
super(context);
}
public CircleImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CircleImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onDraw(Canvas canvas) {
//float radius = 36.0f;
Path clipPath = new Path();
RectF rect = new RectF(0, 0, this.getWidth(), this.getHeight());
clipPath.addRoundRect(rect, radius, radius, Path.Direction.CW);
canvas.clipPath(clipPath);
super.onDraw(canvas);
}
}
在你的xml
布局中使用它
<com.example.project.CircleImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/you_image" />
以上是关于将图像更改为菜单内的圆圈的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 cv2.circle 在 Qlabel 内的图像上绘制一个圆圈