android


Cant apply Custom font on app widget service


final Handler handler = new Handler();
timer = new Timer();
TimerTask updateWidget = new TimerTask() {
#Override
public void run() {
handler.post(new Runnable() {
public void run() {
if (flag&&flag1) {
flag = false;
flag1=false;
try {
image = BitmapFactory.decodeStream((InputStream) new URL("http://openweathermap.org/img/w/"
+ prefs.getString("image", "") + ".png").getContent());
} catch (IOException e) {
e.printStackTrace();
}
if (state == 0) {
remoteViews.setTextViewText(R.id.more_less, "Show more");
remoteViews.setViewVisibility(R.id.weather_icon1, View.GONE);
remoteViews.setTextViewText(R.id.temperature, prefs.getString("vTemperature", "") + "" + unit);
// remoteViews.setImageViewBitmap(R.id.temperature, getFontBitmap((prefs.getString("vTemperature", "") + "" + unit).toString(), Color.WHITE, 100));
remoteViews.setImageViewBitmap(R.id.weather_icon, image);
if (city.length() > 12) {
remoteViews.setTextViewTextSize(R.id.city, TypedValue.COMPLEX_UNIT_PX, 50f);
} else {
remoteViews.setTextViewTextSize(R.id.city, TypedValue.COMPLEX_UNIT_PX, 80f);
}
remoteViews.setTextViewText(R.id.city, city);
remoteViews.setTextViewText(R.id.mainDescription, prefs.getString("mainDescription", ""));
description = prefs.getString("description", "");
if (description.length() > 1) {
description = description.substring(0, 1).toUpperCase() + description.substring(1).toLowerCase();
}
remoteViews.setTextViewText(R.id.description, description);
// remoteViews.setImageViewBitmap(R.id.description, buildUpdate(description));
} else {
remoteViews.setTextViewText(R.id.more_less, "Show less");
remoteViews.setViewVisibility(R.id.weather_icon1, View.VISIBLE);
remoteViews.setTextViewText(R.id.time_1, String.valueOf(timeList.get(0)));
remoteViews.setTextViewText(R.id.time_2, String.valueOf(timeList.get(1)));
remoteViews.setTextViewText(R.id.time_3, String.valueOf(timeList.get(2)));
remoteViews.setTextViewText(R.id.time_4, String.valueOf(timeList.get(3)));
remoteViews.setTextViewText(R.id.time_5, String.valueOf(timeList.get(4)));
remoteViews.setTextViewText(R.id.temperature_1, minTempList.get(0) + "" + unit + "\\" + maxTempList.get(0) + "" + unit);
remoteViews.setTextViewText(R.id.temperature_2, minTempList.get(1) + "" + unit + "\\" + maxTempList.get(1) + "" + unit);
remoteViews.setTextViewText(R.id.temperature_3, minTempList.get(2) + "" + unit + "\\" + maxTempList.get(2) + "" + unit);
remoteViews.setTextViewText(R.id.temperature_4, minTempList.get(3) + "" + unit + "\\" + maxTempList.get(3) + "" + unit);
remoteViews.setTextViewText(R.id.temperature_5, minTempList.get(4) + "" + unit + "\\" + maxTempList.get(4) + "" + unit);
remoteViews.setImageViewBitmap(R.id.icon_1, decodeBitmap(iconList.get(0)));
remoteViews.setImageViewBitmap(R.id.icon_2, decodeBitmap(iconList.get(1)));
remoteViews.setImageViewBitmap(R.id.icon_3, decodeBitmap(iconList.get(2)));
remoteViews.setImageViewBitmap(R.id.icon_4, decodeBitmap(iconList.get(3)));
remoteViews.setImageViewBitmap(R.id.icon_5, decodeBitmap(iconList.get(4)));
remoteViews.setTextViewText(R.id.temperature, prefs.getString("vTemperature", "") + "" + unit);
// remoteViews.setImageViewBitmap(R.id.temperature, getFontBitmap((prefs.getString("vTemperature", "") + "" + unit).toString(), Color.WHITE, 100));
remoteViews.setImageViewBitmap(R.id.weather_icon, image);
if (city.length() > 12) {
remoteViews.setTextViewTextSize(R.id.city, TypedValue.COMPLEX_UNIT_PX, 50f);
} else {
remoteViews.setTextViewTextSize(R.id.city, TypedValue.COMPLEX_UNIT_PX, 80f);
}
remoteViews.setTextViewText(R.id.city, city);
remoteViews.setTextViewText(R.id.mainDescription, prefs.getString("mainDescription", ""));
description = prefs.getString("description", "");
if (description.length() > 1) {
description = description.substring(0, 1).toUpperCase() + description.substring(1).toLowerCase();
}
remoteViews.setTextViewText(R.id.description, description);
}
appWidgetManager.updateAppWidget(widgetId, remoteViews);
if (timer != null) {
timer.cancel();
timer.purge();
timer = null;
}
}
}
});
}
};
timer.schedule(updateWidget, 0, 200);
}
stopSelf();
return START_NOT_STICKY;
}
and bitmap is
private Bitmap getFontBitmap( String text, int color, float fontSizeSP) {
int fontSizePX = convertDiptoPix(fontSizeSP);
int pad = (fontSizePX / 9);
Paint paint = new Paint();
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/Clock2017R.ttf");
paint.setAntiAlias(true);
paint.setTypeface(typeface);
paint.setColor(color);
paint.setTextSize(fontSizePX);
// paint.setShadowLayer(2, 1, 1, Color.DKGRAY);
int textWidth = (int) (paint.measureText(text) + pad * 2);
int height = (int) (fontSizePX / 0.75);
Bitmap bitmap = Bitmap.createBitmap(textWidth, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawText(text, pad, fontSizePX, paint);
return bitmap;
}
private int convertDiptoPix( float dip) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dip, getResources().getDisplayMetrics());
}
When i set remoteViews.setImageBitamp i get problem loading widget error.
I tried several methods but can't get it working .Even tried Calligraphy library but i still get problem loading widget error
Note:
I don't see any error in logcat too.
So kindly help me

Related Links

Android Studio Flavour of a Flavour
How to check alert dialog item selected or not?
Why onReceive(Context, Intent) of BroadcastReceiver is executing twice?
Android : rotate an image clockwise and anticlockwise with two simple buttons
Android Studio Action Bar logo display
Cannot see parameter value in Android Studio when breakpoint is in first line of a method
view getHeight returning 1 but getWidth is correct
Is it possible to put a ListView that doesn't scroll inside of a scrollview?
Reduce Processing time in android
video download from google+/picasa android
How to read dual sim device both sim contact in android
Gridview not displaying images properly in lower versions of android
android gcm registers on both emulator and phone but only receives notifications on emulator?
send a whatsapp message automatically
Check geolocation availability in cordova applications
android save text drawed bitmap to jpeg file

Categories

HOME
dns
google-spreadsheet
datastore
graphics
requirements
pclxl
alarm
soa
tail
bookmarks
polling
webix
okhttp
commonjs
resultset
line
favicon
atlassian-stash
dimensional-modeling
xmonad
google-container-registry
jmp
sencha-touch
drive
asciidoctor-pdf
question2answer
gulp-watch
ios10.2
pimcore
php-mysqlidb
pchart
tosca
android-sharedpreferences
android-maps
underscore.js
cppreference
gp
mql
twiml
mobx
kudu
hibernate-validator
roblox
wurfl
connection-pool
node-mssql
p4merge
trigonometry
attributeerror
subclipse
stylecop
snapchat
opennms
robomongo
dbcontext
insight
context-switch
filehandle
offline.js
node-request
myspace
resourcemanager
macaulay2
installshield-2010
delta
simevents
nservicebus5
sklearn-pandas
fuzzywuzzy
false-sharing
exim4
fiware-monitoring
jdi
text-search
visual-sourcesafe-2005
sony-lifelog-api
lasso
alloy-ui
deform
psr-4
ora-00904
maven-scm
scriptaculous
eclipse-kepler
cocoalibspotify-2.0
octal
android-icons
twisted.web
resource-management
patricia-trie
database-create
koken
box2d-iphone
convention
user-tracking
lr
codebase
aspmenu
ajax-polling
interprocess
duplex
filesystemobject
localizable.strings
ifilter
lemmatization

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App