mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 12:53:55 +01:00
Use a TextView on top of badge image to show user's level.
This commit is contained in:
parent
fd6c4821aa
commit
f4807a5e4b
4 changed files with 23 additions and 63 deletions
|
|
@ -5,7 +5,6 @@ import android.annotation.SuppressLint;
|
|||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
|
|
@ -61,8 +60,10 @@ public class AchievementsActivity extends NavigationBaseActivity {
|
|||
|
||||
private LevelController.LevelInfo levelInfo;
|
||||
|
||||
@BindView(R.id.achievement_badge)
|
||||
@BindView(R.id.achievement_badge_image)
|
||||
ImageView imageView;
|
||||
@BindView(R.id.achievement_badge_text)
|
||||
TextView badgeText;
|
||||
@BindView(R.id.achievement_level)
|
||||
TextView levelNumber;
|
||||
@BindView(R.id.toolbar)
|
||||
|
|
@ -352,9 +353,8 @@ public class AchievementsActivity extends NavigationBaseActivity {
|
|||
levelNumber.setText(levelUpInfoString);
|
||||
final ContextThemeWrapper wrapper = new ContextThemeWrapper(this, levelInfo.getLevelStyle());
|
||||
Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.badge, wrapper.getTheme());
|
||||
Bitmap bitmap = BitmapUtils.drawableToBitmap(drawable);
|
||||
BitmapDrawable bitmapImage = BitmapUtils.writeOnDrawable(bitmap, Integer.toString(levelInfo.getLevelNumber()),this);
|
||||
imageView.setImageDrawable(bitmapImage);
|
||||
imageView.setImageDrawable(drawable);
|
||||
badgeText.setText(Integer.toString(levelInfo.getLevelNumber()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,54 +0,0 @@
|
|||
package fr.free.nrw.commons.achievements;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
||||
public class BitmapUtils {
|
||||
|
||||
/**
|
||||
* write level Number on the badge
|
||||
* @param bm
|
||||
* @param text
|
||||
* @return
|
||||
*/
|
||||
public static BitmapDrawable writeOnDrawable(Bitmap bm, String text, Context context){
|
||||
Bitmap.Config config = bm.getConfig();
|
||||
if (config == null){
|
||||
config = Bitmap.Config.ARGB_8888;
|
||||
}
|
||||
Bitmap bitmap = Bitmap.createBitmap(bm.getWidth(),bm.getHeight(),config);
|
||||
Canvas canvas = new Canvas(bitmap);
|
||||
canvas.drawBitmap(bm, 0, 0, null);
|
||||
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||
paint.setStyle(Paint.Style.FILL);
|
||||
paint.setColor(Color.WHITE);
|
||||
paint.setTextSize(Math.round(canvas.getHeight()/2));
|
||||
paint.setTextAlign(Paint.Align.CENTER);
|
||||
Rect rectText = new Rect();
|
||||
paint.getTextBounds(text,0, text.length(),rectText);
|
||||
canvas.drawText(text, Math.round(canvas.getWidth()/2),Math.round(canvas.getHeight()/1.35), paint);
|
||||
return new BitmapDrawable(context.getResources(), bitmap);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert Drawable to bitmap
|
||||
* @param drawable
|
||||
* @return
|
||||
*/
|
||||
public static Bitmap drawableToBitmap (Drawable drawable) {
|
||||
if (drawable instanceof BitmapDrawable) {
|
||||
return ((BitmapDrawable)drawable).getBitmap();
|
||||
}
|
||||
Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(bitmap);
|
||||
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
|
||||
drawable.draw(canvas);
|
||||
return bitmap;
|
||||
}
|
||||
}
|
||||
|
|
@ -60,18 +60,31 @@
|
|||
android:layout_marginVertical="@dimen/activity_margin_vertical" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/achievement_badge"
|
||||
android:id="@+id/achievement_badge_image"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/achievement_level"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_below="@id/achievement_info"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_marginVertical="@dimen/activity_margin_vertical" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/achievement_badge_text"
|
||||
android:textColor="@color/achievement_badge_text"
|
||||
android:textSize="90dp"
|
||||
android:textAlignment="center"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="50dp"
|
||||
android:layout_alignTop="@+id/achievement_badge_image"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentRight="true" />
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/layout_image_uploaded"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/achievement_badge"
|
||||
android:layout_below="@+id/achievement_badge_image"
|
||||
android:layout_marginEnd="@dimen/activity_margin_horizontal"
|
||||
android:layout_marginLeft="@dimen/activity_margin_horizontal"
|
||||
android:layout_marginRight="@dimen/activity_margin_horizontal"
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
<color name="main_background_light">#fafafa</color>
|
||||
<color name="achievement_background_dark">#494949</color>
|
||||
<color name="achievement_background_light">#D6DCE0</color>
|
||||
<color name="achievement_badge_text">#ffffff</color>
|
||||
<color name="drawerHeader_background_dark">#494949</color>
|
||||
<color name="drawerHeader_background_light">#aaaaaa</color>
|
||||
<color name="tutorial_background_dark">#303030</color>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue