From: tobiasKaminsky Date: Tue, 26 May 2015 18:49:03 +0000 (+0200) Subject: added rectangle with first character X-Git-Tag: oc-android-1.7.2~1^2~23^2~39 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/bc5e05934f3f14cb6369a95dca689da9a655e958?hp=-c added rectangle with first character --- bc5e05934f3f14cb6369a95dca689da9a655e958 diff --git a/res/drawable/radiobutton_avatar.xml b/res/drawable/radiobutton_avatar.xml new file mode 100644 index 00000000..ab7934b9 --- /dev/null +++ b/res/drawable/radiobutton_avatar.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/src/com/owncloud/android/ui/TextDrawable.java b/src/com/owncloud/android/ui/TextDrawable.java new file mode 100644 index 00000000..ae5be54f --- /dev/null +++ b/src/com/owncloud/android/ui/TextDrawable.java @@ -0,0 +1,82 @@ +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; + } +} diff --git a/src/com/owncloud/android/ui/adapter/NavigationDrawerListAdapter.java b/src/com/owncloud/android/ui/adapter/NavigationDrawerListAdapter.java index f9a73a39..a88ecbc7 100644 --- a/src/com/owncloud/android/ui/adapter/NavigationDrawerListAdapter.java +++ b/src/com/owncloud/android/ui/adapter/NavigationDrawerListAdapter.java @@ -7,7 +7,15 @@ import java.util.ArrayList; 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; @@ -21,6 +29,7 @@ import com.owncloud.android.MainApp; 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; @@ -104,7 +113,13 @@ public class NavigationDrawerListAdapter extends BaseAdapter { 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 @@ -118,12 +133,17 @@ public class NavigationDrawerListAdapter extends BaseAdapter { 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());