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

How to upload image file to aws s3 from android?
How do I get the ImageView in front of CardView?
React Native disable Youtube playback on lock screen
Best way to store lots of data into sqlite database in android [duplicate]
Use of constants in sqlite versionning
Proguard obfuscation did't work for Android App
Is it possible to somehow hold onto an Observable's/Flowable's emissions and some way to trigger the emissions as needed?
DriverDistractionAPI does not prevent user interaction when vehicle is moving
Send String from service to activity using broadcast receiver [duplicate]
Implement menu/options button in fullscreen custom view Android
Which strings.xml did Android choose when my app started up?
Problems with overlay implementation
How to get FCM onMessageReceived event in activity without PendingIntent
Android contact app with image and can store upto 3000 contacts
Android Fragment Shared Elements not working with “add”
The layout changes greatly on rotation. How to fix it?

Categories

HOME
windows
gdb
telegram
fftw
access
xbee
parameters
angularfire2
crystal-lang
character
bing-maps
extjs4.2
accessibility
arangodb
augeas
siddhi
windows-ce
xcodebuild
spring-social
symbol
libusb
azure-powershell
keytool
azure-iot-hub
scsi
searchview
android-7.0-nougat
smartclient
gmm
asp.net-core-webapi
ios10.2
qliksense
beta
perlbrew
game-theory
pic32
angular-translate
android-things
sqlpackage
vex
google-earth
dotspatial
panoramas
livelink
jett
dsx-desktop
hreflang
pdw-file-browser
sql-delete
dbnull
microsoft-metro
snapchat
textsum
trojan
corruption
page-replacement
backbone-collections
jqchart
smartfoxserver
slackware
angular2-testing
autosar
latin
mapinfo
expectations
createprocess
rewrite
file-move
computer-architecture
slash
dulwich
airbrake
bcache
rapidsvn
ghcjs
genymotion-call
mintty
rcaller
cancellation
paste
fpdi
clickbank
sphinxql
inputmismatchexception
ebay-lms
font-awesome-4.0.0
virtual-pc
iboutlet
faye
quotation-marks
non-clustered-index
jqueryform
folding
application-verifier
django-piston
purepdf
complex-event-processing
application-planning
product-management
technical-debt
lemmatization
xslcompiledtransform
online-storage
great-circle

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