--- /dev/null
+package com.owncloud.android.ui;
+
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.ColorFilter;
+import android.graphics.Paint;
+import android.graphics.PixelFormat;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+
+/**
+ * Created by tobi on 24.05.15.
+ */
+public class TextDrawable extends Drawable {
+
+ private final String text;
+ private final Integer color;
+ private final Float size;
+
+ public TextDrawable(String text, int r, int g, int b, float size) {
+
+ this.text = text;
+ this.color = Color.rgb(r, g, b);
+ this.size = size;
+
+// this.paint = new Paint();
+//// paint.setColor(Color.BLACK);
+//// paint.setTextSize(18f);
+//// paint.setAntiAlias(true);
+//// paint.setFakeBoldText(true);
+//
+//// paint.setARGB(255, r, g, b);
+//// paint.setStyle(Paint.Style.FILL);
+//// paint.setTextAlign(Paint.Align.CENTER);
+//
+//
+// paint.setColor(Color.BLACK);
+// paint.setTextSize(22f);
+// paint.setAntiAlias(true);
+// paint.setFakeBoldText(true);
+// paint.setTextAlign(Paint.Align.CENTER);
+ }
+
+ @Override
+ public void draw(Canvas canvas) {
+ // TODO Paint in Constructor
+ Paint bg = new Paint();
+ bg.setStyle(Paint.Style.FILL);
+ bg.setColor(color);
+ canvas.drawRect(0,-20,20,40,bg);
+
+ Paint paint = new Paint();
+ paint.setColor(Color.WHITE);
+ paint.setTextSize(20);
+ paint.setAntiAlias(true);
+ paint.setFakeBoldText(true);
+// paint.setTextAlign(Paint.Align.CENTER);
+
+ Rect bounds = new Rect();
+ paint.getTextBounds(text, 0, text.length(), bounds);
+ int x = (canvas.getWidth() / 2) - (bounds.width() / 2);
+ int y = (canvas.getHeight() / 2) - (bounds.height() / 2);
+
+// canvas.drawText(text, x, y, paint);
+ canvas.drawText(text, 4, 6, paint);
+ }
+
+ @Override
+ public void setAlpha(int alpha) {
+// paint.setAlpha(alpha);
+ }
+
+ @Override
+ public void setColorFilter(ColorFilter cf) {
+// paint.setColorFilter(cf);
+ }
+
+ @Override
+ public int getOpacity() {
+ return PixelFormat.TRANSLUCENT;
+ }
+}
import android.accounts.Account;
import android.accounts.AccountManager;
import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
import android.graphics.Color;
+import android.graphics.PorterDuff;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.ShapeDrawable;
+import android.graphics.drawable.shapes.RectShape;
+import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.owncloud.android.R;
import com.owncloud.android.authentication.AccountUtils;
import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.ui.TextDrawable;
import com.owncloud.android.ui.activity.FileDisplayActivity;
import com.owncloud.android.utils.BitmapUtils;
for (Account account : mAccounts) {
RadioButton rb = new RadioButton(mContext);
+
rb.setText(account.name);
+ rb.setTextColor(Color.BLACK);
+ rb.setEllipsize(TextUtils.TruncateAt.MIDDLE);
+ rb.setSingleLine();
+ rb.setCompoundDrawablePadding(30);
+
try {
// using adapted algorithm from /core/js/placeholder.js:50
double maxRange = java.lang.Integer.MAX_VALUE;
float hue = (float) (seedMd5Int / maxRange * 360);
- Log_OC.d(TAG, "hue: " + hue);
+ int[] rgb = BitmapUtils.HSLtoRGB(hue, 90.0f, 65.0f, 1.0f);
+// Drawable drawable = MainApp.getAppContext().getResources().getDrawable(R.drawable.radiobutton_avatar);
+// drawable.setColorFilter(Color.rgb(rgb[0], rgb[1], rgb[2]), PorterDuff.Mode.SRC_ATOP);
+
+
+
+ TextDrawable text = new TextDrawable(username.substring(0, 1).toUpperCase(), rgb[0], rgb[1], rgb[2], rb.getTextSize());
+
+ rb.setCompoundDrawablesWithIntrinsicBounds(text, null, null, null);
- int[] rgb = BitmapUtils.HSLtoRGB(hue, 90.0f, 65.0f, 1.0f);
- rb.setTextColor(Color.rgb(rgb[0], rgb[1], rgb[2]));
- Log_OC.d(TAG, "Color: " + rgb[0] + " " + rgb[1] + " " + rgb[2]);
} catch (Exception e){
Log_OC.d(TAG, e.toString());