انجمن سایت کلیدستان



نمایش تصویر تصادفی در ویجت (widget) (برنامه نویسی اندروید)زمان کنونی: ۱۳۹۸/۱۲/۰۹، ۱۰:۵۵ ق.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: akbarg64
آخرین ارسال: iman2020
پاسخ 12
بازدید 3907

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نمایش تصویر تصادفی در ویجت (widget) (برنامه نویسی اندروید)

نمایش تصویر تصادفی در ویجت (widget) (برنامه نویسی اندروید)

#1
با سلام و خسته نباشید . من از این کد برای نمایش تصویر تصادفی در ویجت استفاده می کنم. اما متاسفانه هیچ اتفاقی نمیوفته. ممنون میشم راهنمایی کنید.

کد پی‌اچ‌پی:
package ir.akbar.widget;

/**
 * Created by Akbar on 09/02/2016.
 */

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import java.util.Random;
import android.R.drawable;
import android.app.Activity;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RemoteViews;

public class 
ExampleAppWidgetProvider extends AppWidgetProvider {
 
   int max 16;
 
   int score 0;
 
   String imgName;
 
   Random rand = new Random();

 
   String uri "@drawable/img1.png";


 
   public void onUpdate(Context contextAppWidgetManager appWidgetManagerint[] appWidgetIds) {
 
       super.onUpdate(contextappWidgetManagerappWidgetIds);
 
       final int N appWidgetIds.length;

 
       Log.i("ExampleWidget""Updating widgets ");
 
       
        for 
(int i 0appWidgetIds.lengthi++) {
 
           Random r = new Random();
 
           int min 1;
 
           int max 721;
 
           int id3 r.nextInt(max) + min;
 
           int id2 id3 1;
 
           Resources res context.getResources();

 
           int rndN rand.nextInt(5) + 1;
 
           String imgName "img" rndN;;
 
           int id context.getResources().getIdentifier(imgName"drawable"context.getPackageName());
 
           if (id == id) {
 
               id context.getResources().getIdentifier(imgName"drawable"context.getPackageName());
 
               id2 id3 1;
 
           }
 
           int appWidgetId appWidgetIds;
 
           Intent intent = new Intent(contextMainActivity.class);
 
           PendingIntent pendingIntent PendingIntent.getActivity(context0intent0);
 
           RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget1);
 
           views.setImageViewResource(R.id.image_in_widgetid);
 
           appWidgetManager.updateAppWidget(appWidgetIdviews);
 
       }
 
   }



پاسخ

نمایش تصویر تصادفی در ویجت (widget) (برنامه نویسی اندروید)

#2
با سلام.
معمولا در مواردی که با Force Close روبرو می شویم یا اینکه عملیاتی که انتظار داشتیم اجرا گردد، اجرا نمی شود، توصیه می شود که به خطایابی پروژه اندروید بر روی گوشی واقعی یا شبیه سازها بپردازید (کلید شماره 813)، دقت شود که منظور ما از خطایابی، همیشه یافتن خطایی در برنامه که باعث Force Close می شود نیست، بلکه گاهی منظورمان این است که فرد با نوشتن تعدادی پیام برای نمایش در LogCat (کلید شماره 2719)، روند اجرای کدها را با جزئیاتی که در LogCat نمایش داده می شود، بررسی نماید.
قبل از هر چیز باید ببینید که اصلا روش onUpdate فراخوانی می شود یا خیر (بر اساس همان پیام های LogCat). به عنوان مثال، یک مورد در لینک زیر ذکر شده است :

http://stackoverflow.com/questions/97441...oid-widget

Flower
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط akbarg64

نمایش تصویر تصادفی در ویجت (widget) (برنامه نویسی اندروید)

#3
تشکر از لطف شما.مشکل حل شد . فقط یه مشکل دیگه دارم اونم اینکه میخوام ویجت هر یک دقیقه تصویر رو عوض کنه.اما فقط بار اول بعد از یک دقیقه عوض میشه و ادامه پیدا نمی کنه.

اینم کد های widget_info.xml

کد:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
   android:minWidth="294dp"
   android:minHeight="72dp"
   android:updatePeriodMillis="60000"
   android:initialLayout="@layout/widget1">
</appwidget-provider>
این خطا رو میده
Unable to start service Intent { flg=0x4 cmp=ir.akbar.widget/.ExampleAppWidgetProvider (has extras) } U=0: not found
اینم اون کد
کد:
           PendingIntent pending = PendingIntent.getService(context, 0, new Intent(context,MainActivity.class ), 0);
پاسخ

نمایش تصویر تصادفی در ویجت (widget) (برنامه نویسی اندروید)

#4
(۱۳۹۵/۰۶/۱۲, ۱۰:۳۳ ب.ظ)akbarg64 نوشته: با سلام و خسته نباشید . من از این کد برای نمایش تصویر تصادفی در ویجت استفاده می کنم. اما متاسفانه هیچ اتفاقی نمیوفته. ممنون میشم راهنمایی کنید.

کد پی‌اچ‌پی:
package ir.akbar.widget;

/**
 * Created by Akbar on 09/02/2016.
 */

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import java.util.Random;
import android.R.drawable;
import android.app.Activity;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RemoteViews;

public class 
ExampleAppWidgetProvider extends AppWidgetProvider {
 
   int max 16;
 
   int score 0;
 
   String imgName;
 
   Random rand = new Random();

 
   String uri "@drawable/img1.png";


 
   public void onUpdate(Context contextAppWidgetManager appWidgetManagerint[] appWidgetIds) {
 
       super.onUpdate(contextappWidgetManagerappWidgetIds);
 
       final int N appWidgetIds.length;

 
       Log.i("ExampleWidget""Updating widgets ");
 
       
        for 
(int i 0appWidgetIds.lengthi++) {
 
           Random r = new Random();
 
           int min 1;
 
           int max 721;
 
           int id3 r.nextInt(max) + min;
 
           int id2 id3 1;
 
           Resources res context.getResources();

 
           int rndN rand.nextInt(5) + 1;
 
           String imgName "img" rndN;;
 
           int id context.getResources().getIdentifier(imgName"drawable"context.getPackageName());
 
           if (id == id) {
 
               id context.getResources().getIdentifier(imgName"drawable"context.getPackageName());
 
               id2 id3 1;
 
           }
 
           int appWidgetId appWidgetIds;
 
           Intent intent = new Intent(contextMainActivity.class);
 
           PendingIntent pendingIntent PendingIntent.getActivity(context0intent0);
 
           RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget1);
 
           views.setImageViewResource(R.id.image_in_widgetid);
 
           appWidgetManager.updateAppWidget(appWidgetIdviews);
 
       }
 
   }




سلام
دوست من یه لینک برات میذارم که میتونی ازش کمک بگیری مشکلتو برطرف کنی
لینک کمکی
پاسخ

نمایش تصویر تصادفی در ویجت (widget) (برنامه نویسی اندروید)

#5
سلام.دوستان/سورس کد کامل رو دارید؟   دوستان میتونید این کد رو به صورت کامل بنویسید؟خیلی بهش نیاز دارم
پاسخ

نمایش تصویر تصادفی در ویجت (widget) (برنامه نویسی اندروید)

#6
(۱۳۹۵/۰۶/۲۳, ۱۰:۳۰ ق.ظ)shimasariri نوشته:
(۱۳۹۵/۰۶/۱۲, ۱۰:۳۳ ب.ظ)akbarg64 نوشته: با سلام و خسته نباشید . من از این کد برای نمایش تصویر تصادفی در ویجت استفاده می کنم. اما متاسفانه هیچ اتفاقی نمیوفته. ممنون میشم راهنمایی کنید.

کد پی‌اچ‌پی:
package ir.akbar.widget;

/**
 * Created by Akbar on 09/02/2016.
 */

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import java.util.Random;
import android.R.drawable;
import android.app.Activity;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RemoteViews;

public class 
ExampleAppWidgetProvider extends AppWidgetProvider {
 
   int max 16;
 
   int score 0;
 
   String imgName;
 
   Random rand = new Random();

 
   String uri "@drawable/img1.png";


 
   public void onUpdate(Context contextAppWidgetManager appWidgetManagerint[] appWidgetIds) {
 
       super.onUpdate(contextappWidgetManagerappWidgetIds);
 
       final int N appWidgetIds.length;

 
       Log.i("ExampleWidget""Updating widgets ");
 
       
        for 
(int i 0appWidgetIds.lengthi++) {
 
           Random r = new Random();
 
           int min 1;
 
           int max 721;
 
           int id3 r.nextInt(max) + min;
 
           int id2 id3 1;
 
           Resources res context.getResources();

 
           int rndN rand.nextInt(5) + 1;
 
           String imgName "img" rndN;;
 
           int id context.getResources().getIdentifier(imgName"drawable"context.getPackageName());
 
           if (id == id) {
 
               id context.getResources().getIdentifier(imgName"drawable"context.getPackageName());
 
               id2 id3 1;
 
           }
 
           int appWidgetId appWidgetIds;
 
           Intent intent = new Intent(contextMainActivity.class);
 
           PendingIntent pendingIntent PendingIntent.getActivity(context0intent0);
 
           RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget1);
 
           views.setImageViewResource(R.id.image_in_widgetid);
 
           appWidgetManager.updateAppWidget(appWidgetIdviews);
 
       }
 
   }




سلام
دوست من یه لینک برات میذارم که میتونی ازش کمک بگیری مشکلتو برطرف کنی
لینک کمکی

سلام
شما برای تغییر تصادفی تصاویر میتونید اسم تصاویر توی ارایه نگهدارید و با ایجاد تابع رندوم از صفر تا مقدار ایندکس ارایه که موجود استفاده کنی، برای اجرای مداوم یک دستور هم میتونی از timer استفاده کنی، از کلاس های سرویس هم برای کارت میتونی استفاده کنی که ویجت رو آپدیت کنه ولی خب بازم از timer برای اجرای دستورت بصورت بازه زمانی باید استفاده کنی
Iran  ErfanMahigir Iran
پاسخ

نمایش تصویر تصادفی در ویجت (widget) (برنامه نویسی اندروید)

#7
(۱۳۹۵/۰۶/۱۴, ۰۸:۳۵ ب.ظ)akbarg64 نوشته: تشکر از لطف شما.مشکل حل شد . فقط یه مشکل دیگه دارم اونم اینکه میخوام ویجت هر یک دقیقه تصویر رو عوض کنه.اما فقط بار اول بعد از یک دقیقه عوض میشه و ادامه پیدا نمی کنه.

اینم کد های widget_info.xml

کد:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
   android:minWidth="294dp"
   android:minHeight="72dp"
   android:updatePeriodMillis="60000"
   android:initialLayout="@layout/widget1">
</appwidget-provider>
این خطا رو میده
Unable to start service Intent { flg=0x4 cmp=ir.akbar.widget/.ExampleAppWidgetProvider (has extras) } U=0: not found
اینم اون کد
کد:
           PendingIntent pending = PendingIntent.getService(context, 0, new Intent(context,MainActivity.class ), 0);

سلام
شما برای تغییر تصادفی تصاویر میتونید اسم تصاویر توی ارایه نگهدارید و با ایجاد تابع رندوم از صفر تا مقدار ایندکس ارایه که موجود استفاده کنی، برای اجرای مداوم یک دستور هم میتونی از timer استفاده کنی، از کلاس های سرویس هم برای کارت میتونی استفاده کنی که ویجت رو آپدیت کنه ولی خب بازم از timer برای اجرای دستورت بصورت بازه زمانی باید استفاده کنی
Iran  ErfanMahigir Iran
پاسخ

نمایش تصویر تصادفی در ویجت (widget) (برنامه نویسی اندروید)

#8
(۱۳۹۸/۰۶/۱۷, ۰۱:۰۳ ق.ظ)e.mahi نوشته:
(۱۳۹۵/۰۶/۱۴, ۰۸:۳۵ ب.ظ)akbarg64 نوشته: تشکر از لطف شما.مشکل حل شد . فقط یه مشکل دیگه دارم اونم اینکه میخوام ویجت هر یک دقیقه تصویر رو عوض کنه.اما فقط بار اول بعد از یک دقیقه عوض میشه و ادامه پیدا نمی کنه.

اینم کد های widget_info.xml

کد:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
   android:minWidth="294dp"
   android:minHeight="72dp"
   android:updatePeriodMillis="60000"
   android:initialLayout="@layout/widget1">
</appwidget-provider>
این خطا رو میده
Unable to start service Intent { flg=0x4 cmp=ir.akbar.widget/.ExampleAppWidgetProvider (has extras) } U=0: not found
اینم اون کد
کد:
           PendingIntent pending = PendingIntent.getService(context, 0, new Intent(context,MainActivity.class ), 0);

سلام
شما برای تغییر تصادفی تصاویر میتونید اسم تصاویر توی ارایه نگهدارید و با ایجاد تابع رندوم از صفر تا مقدار ایندکس ارایه که موجود استفاده کنی، برای اجرای مداوم یک دستور هم میتونی از timer استفاده کنی، از کلاس های سرویس هم برای کارت میتونی استفاده کنی که ویجت رو آپدیت کنه ولی خب بازم از timer برای اجرای دستورت بصورت بازه زمانی باید استفاده کنی
سلام داداش.من میخام یه ویجت درست کنم که هر روز تغییر کنه در صفحه اصلی.مثلا نمایش حدیث.ویجت کار نکردم.دانش کدنویسی ندارم ولی علاقه مند هستم به یادگیری.قبلا یه برنامه از روی آموزش ها درست کردم..میتونید کمکم کنید..
پاسخ

نمایش تصویر تصادفی در ویجت (widget) (برنامه نویسی اندروید)

#9
(۱۳۹۸/۰۶/۱۷, ۰۱:۰۹ ق.ظ)iman2020 نوشته:
(۱۳۹۸/۰۶/۱۷, ۰۱:۰۳ ق.ظ)e.mahi نوشته:
(۱۳۹۵/۰۶/۱۴, ۰۸:۳۵ ب.ظ)akbarg64 نوشته: تشکر از لطف شما.مشکل حل شد . فقط یه مشکل دیگه دارم اونم اینکه میخوام ویجت هر یک دقیقه تصویر رو عوض کنه.اما فقط بار اول بعد از یک دقیقه عوض میشه و ادامه پیدا نمی کنه.

اینم کد های widget_info.xml

کد:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
   android:minWidth="294dp"
   android:minHeight="72dp"
   android:updatePeriodMillis="60000"
   android:initialLayout="@layout/widget1">
</appwidget-provider>
این خطا رو میده
Unable to start service Intent { flg=0x4 cmp=ir.akbar.widget/.ExampleAppWidgetProvider (has extras) } U=0: not found
اینم اون کد
کد:
           PendingIntent pending = PendingIntent.getService(context, 0, new Intent(context,MainActivity.class ), 0);

سلام
شما برای تغییر تصادفی تصاویر میتونید اسم تصاویر توی ارایه نگهدارید و با ایجاد تابع رندوم از صفر تا مقدار ایندکس ارایه که موجود استفاده کنی، برای اجرای مداوم یک دستور هم میتونی از timer استفاده کنی، از کلاس های سرویس هم برای کارت میتونی استفاده کنی که ویجت رو آپدیت کنه ولی خب بازم از timer برای اجرای دستورت بصورت بازه زمانی باید استفاده کنی
سلام داداش.من میخام یه ویجت درست کنم که هر روز تغییر کنه در صفحه اصلی.مثلا نمایش حدیث.ویجت کار نکردم.دانش کدنویسی ندارم ولی علاقه مند هستم به یادگیری.قبلا یه برنامه از روی آموزش ها درست کردم..میتونید کمکم کنید..

سلام بله چرا که نه، در حد توانم کمک میکنم، میخوای برنامه بنویسی براش ویجت درست کنی یا نه فقط ویجت درست کنی؟
ID Me in Telegram : erfanprogrammer
Iran  ErfanMahigir Iran
پاسخ
 سپاس شده توسط iman2020

نمایش تصویر تصادفی در ویجت (widget) (برنامه نویسی اندروید)

#10
میخام ویجت درست کنم..مثل این ویجت"ماه خوب خدا"
https://rasekhoon.net/mobile/software/sh...%A7%D9%86/

البته میخام تو این ویجت از انیمیشن هم استفاده کنم مثلا حرکت متن از راست به چپ.و اینکه علاوه بر دیالوگ که با کلیک بر روی دکمه بر روی ویجت باز میشه یه دکمه هم واسه هدایت به اکتیویتی اصلی برنامه داشته باشه.

من خیلی وقت گذاشتم واسه پیدا کردن سورس یا کد موفق نشدم.اصلا ویجت کار نکردم...ممنون میشم کمکم کنید وقتی هم نداریم .میخام آماده بشه واسه همین روزا.به نیت ماه محرم و صفر...من گرافیست هستم علاقه به یادگیری ویجت دارم تا در آینده خودم بتونم ویجت های مختلفی درست کنم.اجرتون با سیدالشهدا
آیدی تلگرام من واسه ارتباط سریعتر:  @iman_a_y
پاسخ

نمایش تصویر تصادفی در ویجت (widget) (برنامه نویسی اندروید)

#11
سلام اموزش درست کردن ویجت در لینک زیر میتونید مرحله به مرحله انجام بدید
http://thetechnocafe.com/how-to-create-w...droid-app/

موفق باشید
پاسخ

نمایش تصویر تصادفی در ویجت (widget) (برنامه نویسی اندروید)

#12
(۱۳۹۸/۰۶/۲۲, ۰۲:۱۸ ب.ظ)mehranbagvand نوشته: سلام اموزش درست کردن ویجت در لینک زیر میتونید مرحله به مرحله انجام بدید
http://thetechnocafe.com/how-to-create-w...droid-app/

موفق باشید

سلام.تشکر از راهنمایی.مشکل بنده با ساخت ویجت مرحله بعدش هست.یعنی بتونم تصاویر ویجت رو یک ساعت یکبار یا یک روز یکبار بر اساس تاریخ و زمان اتوماتیک تغییر بدم.مثل برنامه ماه خوب خدا
Heart
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان