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

Passing information to new activity
Android Studio .idea and .gradle folders be kept in source control?
when i click the exit button it keep looping
Porting existing Cordova app into Android Studio
Android: VideoView sometimes stop playing videos after some time
Gridview with GridViewAdapter how to set onclick listener in Gridview and not GridViewAdapter
Eclipse does not recognize any methods of BitmapFactory.Options variable
Can we enable pie (i.e. Position Independent Executables) for shared libraries in android-ndk r10c?
Why does crash in Activity DOES NOT crash whole app - Android
Android Notification.MediaStyle not responding to MediaSession updates
How to remove Radiobuttons from RadiopGroup Created by Array String
Eclipse automatically creates a breakpoint in ThreadPoolExecutor class
SQlCipher for android Xamarin
ListView with recent objects at top
How to add a search view on action bar tabs just same as in play store application
Android adapter arrayadapter or cursor?

Categories

HOME
django
porting
c99
pagination
apache-spark-mllib
hessian
jwplayer
composite-primary-key
jsf-2.2
opendj
pkcs#11
bing-maps
jquery-ui-sortable
pcl-crypto
appcelerator-studio
pega
spring-social
shared-libraries
mongodb-csharp
symbol
chargify
forgot-password
template-engine
symfony-console
nodemcu
solrcloud
pagespeed
onload
itunes
fragment-backstack
apktool
8051
comparable
mql
nsurl
constexpr
panoramas
livelink
left-join
database-comparison
carriage-return
signals-slots
xv6
linqpad
jquery-ui-draggable
convex-optimization
context-switch
custom-font
ngmaterial
template-toolkit
cd-burning
cudd
seek
preprocessor
dotnetnuke-7
shopping
pushbots
invoke-sqlcmd
jparsec
qbxml
asyncdisplaykit
sciruby
themoviedb-api
django-urls
ansi
alloy-ui
android-broadcast
j-security-check
phpldapadmin
nodelist
mdichild
tinyxml
dct
file-not-found
conditionaltagsupport
scriptaculous
away3d
printdialog
qi4j
multiplexing
cgimage
jqote
svk
nhprof
globals
drupal-fivestar
eclipse-marketplace
blender-2.49
duplex
wcf-instancing
cldc
technical-debt
business-model

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