#android #live-wallpaper
#Android #живые обои
Вопрос:
Я создал приложение для расчета оставшихся дней в Android. У меня также есть приложение live wallpaper.
Теперь я хочу установить эти оставшиеся дни на экране live wallpaper. Как я могу это сделать?
Ответ №1:
Вы можете использовать веб-сервис, если у клиента есть доступ в Интернет, или вы можете сохранить дату где-нибудь и обновить, это просто, если вы знаете Java
Комментарии:
1. это приложение такое же, как Twilight Screenboard
2. да, вы правы .. но если я хочу упростить это на устройстве. нравится сервис живых обоев..
3. привет, используйте подобный код для записи даты и времени на холсте обоев StaticLayout layout = new StaticLayout (текст, txtpaint, textW, макет. Выравнивание. ALIGN_NORMAL, 1.3f, 0, false); txtcanvas.translate(xoffs, yoffs); //расположите макет текста.нарисуйте (txtcanvas);
Ответ №2:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
public class DateTest {
public class DateTest {
static SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy");
public static void main(String[] args) {
TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
//diff between these 2 dates should be 1
Date d1 = new Date("01/01/2007 12:00:00");
Date d2 = new Date("01/02/2007 12:00:00");
//diff between these 2 dates should be 1
Date d3 = new Date("03/24/2007 12:00:00");
Date d4 = new Date("03/25/2007 12:00:00");
Calendar cal1 = Calendar.getInstance();cal1.setTime(d1);
Calendar cal2 = Calendar.getInstance();cal2.setTime(d2);
Calendar cal3 = Calendar.getInstance();cal3.setTime(d3);
Calendar cal4 = Calendar.getInstance();cal4.setTime(d4);
printOutput("Manual ", d1, d2, calculateDays(d1, d2));
printOutput("Calendar ", d1, d2, daysBetween(cal1, cal2));
System.out.println("---");
printOutput("Manual ", d3, d4, calculateDays(d3, d4));
printOutput("Calendar ", d3, d4, daysBetween(cal3, cal4));
}
private static void printOutput(String type, Date d1, Date d2, long result) {
System.out.println(type "- Days between: " sdf.format(d1)
" and " sdf.format(d2) " is: " result);
}
/** Manual Method - YIELDS INCORRECT RESULTS - DO NOT USE**/
/* This method is used to find the no of days between the given dates */
public static long calculateDays(Date dateEarly, Date dateLater) {
return (dateLater.getTime() - dateEarly.getTime()) / (24 * 60 * 60 * 1000);
}
/** Using Calendar - THE CORRECT WAY**/
public static long daysBetween(Calendar startDate, Calendar endDate) {
Calendar date = (Calendar) startDate.clone();
long daysBetween = 0;
while (date.before(endDate)) {
date.add(Calendar.DAY_OF_MONTH, 1);
daysBetween ;
}
return daysBetween;
}
}