如何在Android的操作栏中显示圆形徽标?

时间:2015-01-27 09:06:14

标签: android android-actionbar

enter image description here

就像上面的Google Plus屏幕截图一样,我想在操作栏中显示一个圆形头像。我该怎么办?

3 个答案:

答案 0 :(得分:12)

您可以使用位图以编程方式执行此操作:

首先在您的活动的onCreate()上执行此操作:

getSupportActionBar().setDisplayShowHomeEnabled(true);
Drawable drawable = new BitmapDrawable(getResources(), createCircleBitmap(sourceBitmap));
getSupportActionBar().setIcon(drawable);

这是createCircleBitmap()方法:

public Bitmap createCircleBitmap(Bitmap bitmapimg){
        Bitmap output = Bitmap.createBitmap(bitmapimg.getWidth(),
                bitmapimg.getHeight(), Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(output);

        final int color = 0xff424242;
        final Paint paint = new Paint();
        final Rect rect = new Rect(0, 0, bitmapimg.getWidth(),
                bitmapimg.getHeight());

        paint.setAntiAlias(true);
        canvas.drawARGB(0, 0, 0, 0);
        paint.setColor(color);
        canvas.drawCircle(bitmapimg.getWidth() / 2,
                bitmapimg.getHeight() / 2, bitmapimg.getWidth() / 2, paint);
        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
        canvas.drawBitmap(bitmapimg, rect, rect, paint);
        return output;
    }

PS:如果您没有Bitmap,可以使用它将Drawable转换为Bitmap:

Bitmap sourceBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.your_drawable);

答案 1 :(得分:5)

  1. 创建圆形图像视图。
  2. 使用圆形图像视图
  3. 为操作栏创建自定义视图
  4. 对视图进行充气并将自定义视图显示为操作栏。
  5. <RelativeLayout         xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:background="@drawable/black_pattern" >
    
    <TextView
     android:id="@+id/title_text"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_centerInParent="true"
     android:textAllCaps="true"
     android:textAppearance="?android:attr/textAppearanceLarge"
     android:textColor="#fff"
     android:textStyle="bold" />
    
    <com.example.CircularImageView
     android:id="@+id/circularimageView1"
     android:layout_width="35dp"
     android:layout_height="35dp"
     android:layout_alignParentLeft="true"
     android:layout_centerVertical="true"
     android:layout_marginLeft="8dp"/>
    
    </RelativeLayout> 
    

    <强> Activity.java

    ActionBar mActionBar = getActionBar();
    mActionBar.setDisplayShowHomeEnabled(false);
    mActionBar.setDisplayShowTitleEnabled(false);
    LayoutInflater mInflater = LayoutInflater.from(this);
    
    View mCustomView = mInflater.inflate(R.layout.actionbar, null);
    
    mActionBar.setCustomView(mCustomView);
    mActionBar.setDisplayShowCustomEnabled(true);
    

答案 2 :(得分:0)

当您开始创建项目时(您需要按照下面的第三步)

Step 1: New Android Project 

Step 2 : Configure Your Project 

第3步:配置启动器图标

  You can Choose a shape as Circle 

我希望你需要这个答案