2015-01-09 5 views
0

작업 표시 줄의 항목 아이콘에 텍스트를 그립니다. 나의 현재의 액션 바는 이것이다 :항목 메뉴 작업 표시 줄에 텍스트를 그립니다.

enter image description here

나는 이런 식으로 할 것을 권장합니다

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    getMenuInflater().inflate(R.menu.main, menu); 
    shoppingCardTopMenu = menu.findItem(R.id.top_menu_shopping_card); 

    Bitmap.Config conf = Bitmap.Config.ARGB_8888; 
    Bitmap bmp = Bitmap.createBitmap(30, 30, conf); 

    Paint paint = new Paint(); 
    Canvas canvas = new Canvas(bmp); 
    canvas.drawPaint(paint); 
    paint.setColor(Color.BLACK); 
    paint.setTextSize(16); 
    canvas.drawText("test", 0, 0, paint); 

    shoppingCardTopMenu.getIcon().draw(canvas); 

    return true; 
} 

하지만 작동하지 :

enter image description here

내가이 코드를 시도했다. 어떤 해결책이 있습니까?

+0

여기에 무엇을 그리는 것이고 텍스트를 어디에 설정합니까? –

+0

작업 표시 줄의 바구니 아이콘에 숫자를 그립니다. 이것은 그가 판매하는 항목을 사용자에게 보여주는 것입니다 –

+0

매우 고맙습니다. :) –

답변

1
내가 뭔가를 당신을 위해 작동 여부를 내가 버튼이 있기 때문에,이 방법을 시도, 사용자 정의 항목을 추가합니다 모르는

..

<item 
    android:id="@+id/badge" 
    android:actionLayout="@layout/feed_update_count" 
    android:icon="@drawable/shape_notification" 
    android:showAsAction="always"> 
</item> 

버튼

 <Button xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/notif_count" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:minWidth="32dp" 
     android:minHeight="32dp" 
     android:background="@drawable/yourthings" 
     android:text="0" 
     android:textSize="16sp" 
     android:textColor="@android:color/white" 
     android:gravity="center" 
     android:padding="2dp" 
     android:singleLine="true">  
    </Button> 

Youractivity

static Button notifCount; 
static int mNotifCount = 0;  

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
MenuInflater inflater = getSupportMenuInflater(); 
inflater.inflate(R.menu.main, menu); 

View count = menu.findItem(R.id.badge).getActionView(); 
notifCount = (Button) count.findViewById(R.id.notif_count); 
notifCount.setText(String.valueOf(mNotifCount)); 
return super.onCreateOptionsMenu(menu); 
} 

private void setNotifCount(int count){ 
mNotifCount = count; 
invalidateOptionsMenu(); 
} 
관련 문제