将图像更改为菜单内的圆圈

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将图像更改为菜单内的圆圈相关的知识,希望对你有一定的参考价值。

如何将此图像更改为圆形

Click here

毕加索

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"/>

截图:

Screenshot

资料来源: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 内的图像上绘制一个圆圈

Android:将“ViewPager”动画从片段更改为片段

将引导程序下拉更改为水平向右

UIImageView:将大小更改为图像大小?

将 SKSprite 的图像更改为 SKShapeNode

如何将离子滑块寻呼机点/圆圈颜色更改为黄色,非活动为白色?