PDA

View Full Version : چند آیکونه بودن



ho33ein19
یک شنبه 16 آذر 1393, 12:05 عصر
سلام دوستان
آیا راهی هست که با توجه به رنگ قالب برنامه آیکون برنامه هم تغییر کنه یعنی چند تا آیکون داشته باشیم که هرموقع کاربر قالب برنامه رو عوض کرد آیکون هم تغییر کنه
ممنون میشم راهنمایی کنید

mrtzxxx
یک شنبه 16 آذر 1393, 14:12 عصر
فایل منیفست فقط یک عکس رو به عنوان آیکون میشناسه . برای اینکه عکس رو عوض کنی باید فایل منیفست رو تغییر بدی و فکر نمیکنم برنامه ای که نصب شده رو بشه فایل منفیستش رو تغییر داد .

tux-world
یک شنبه 16 آذر 1393, 15:41 عصر
نه نمیشه عوضش کرد

rtvrtv
یک شنبه 16 آذر 1393, 15:46 عصر
بله
قالب xml فرمت برنامه را مشخص میکنه شما باید قالب با کد جاوا تولید کنید به این طریق هر کاری ممکن خواهد بود

tux-world
یک شنبه 16 آذر 1393, 17:12 عصر
بله
قالب xml فرمت برنامه را مشخص میکنه شما باید قالب با کد جاوا تولید کنید به این طریق هر کاری ممکن خواهد بود

میشه یه مثال یا کدی بزارید ما هم بدونیم

rtvrtv
یک شنبه 16 آذر 1393, 17:58 عصر
بله فردا میزارم

mrtzxxx
یک شنبه 16 آذر 1393, 19:01 عصر
بله فردا میزارم

منم خیلی کنجکاو شدم چه جوری؟؟

rtvrtv
یک شنبه 16 آذر 1393, 19:11 عصر
کی دیگه کنجکاوه؟ نبود؟

rtvrtv
دوشنبه 17 آذر 1393, 10:17 صبح
package net.learn2develop.UICode;

import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

public class UICodeActivity extends Activity {
/** Called when the activity is first created. */
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
//---param for views---
LayoutParams params =
new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);

//---create a layout---
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);

//---create a textview---
TextView tv = new TextView(this);
tv.setText("This is a TextView");
tv.setLayoutParams(params);

//---create a button---
Button btn = new Button(this);
btn.setText("This is a Button");
btn.setLayoutParams(params);

//---adds the textview---
layout.addView(tv);

//---adds the button---
layout.addView(btn);

//---create a layout param for the layout---
LinearLayout.LayoutParams layoutParam =
new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT );

this.addContentView(layout, layoutParam);
}
}

rtvrtv
دوشنبه 17 آذر 1393, 10:21 صبح
توضیحش واضحه
ابتدا نمایش از فایل xml غیر فعال میکنیم
سپس کلیه ابجکتهایی که نیاز داریم از طریق کد تولید میکنیم یه کم سخته ولی جاهایی که می خواهید محیط پویا واسه کاربر ت.لید کنید به درد میخوره
در خصوص ایکون و .. هم خودتون روش وقت بزارین شدنی هست راستش من الان درگیر چند تا پروژه ام بیشتر از این نمیتونم بهتون کمک کنم موفق باشین

#root#
دوشنبه 17 آذر 1393, 12:59 عصر
توضیحش واضحه
ابتدا نمایش از فایل xml غیر فعال میکنیم
سپس کلیه ابجکتهایی که نیاز داریم از طریق کد تولید میکنیم یه کم سخته ولی جاهایی که می خواهید محیط پویا واسه کاربر ت.لید کنید به درد میخوره
در خصوص ایکون و .. هم خودتون روش وقت بزارین شدنی هست راستش من الان درگیر چند تا پروژه ام بیشتر از این نمیتونم بهتون کمک کنم موفق باشین

سلام، شما سوال رو خوب متوجه نشدید، ایشون میخواستن آیکون برنامه تو Launcher رو تغییر بدن.

rtvrtv
دوشنبه 17 آذر 1393, 13:20 عصر
در اینصورت فکر کنم نشه

tux-world
سه شنبه 18 آذر 1393, 12:14 عصر
در اینصورت فکر کنم نشه

دستتون درد نکنه بابا :قهقهه: ما که گفتیم نمیشه. سر کار بودیم هااااا خداییش

pbm_soy
چهارشنبه 19 آذر 1393, 02:22 صبح
اگر خود فایل آیکن را رونویسی کنید چه میشه؟
اصلا امکان دارد فایلی را از فولدر asset کپی کنید تو فولدر تصاویر ؟
فکر کنم بشه
فقط شما هر چهار ایکن را در assetداشته باشید و بسته به شرایط آنرا با همان نام ایکن اصلی به فولدر تصاویر کپی کنید

pbm_soy
چهارشنبه 19 آذر 1393, 02:37 صبح
البته راه ساده تر اینه که از طریق دستورات در زمان اجرا ایکن دیگه ای ست کنید
Getactionbar().seticon(r.drawable.youricon)
شماه هر چهار ایکن رادر drawableبذارید بعد بسته شرایط یکی از انهارا به اکشن بار ست کنید

pbm_soy
چهارشنبه 19 آذر 1393, 02:58 صبح
من در پست قبل اشتباه پست کرذدم ببخشید

ولی تنها راه حل همونی است که قبلا عرض کردم یعنی عوض کردن خود فایل در فولدر تصاویر مثلا عکس را از انجا حذف کنید و بعد عکس دیگری دقیا با همان نام در انجا ذخیره کنید

skkhossein
چهارشنبه 19 آذر 1393, 03:27 صبح
روش منطقی هستش امکانش زیاده که آیکون برنامه تغییر کنه

NeoFighT
چهارشنبه 19 آذر 1393, 18:53 عصر
من توی بعضی از برنامه ها دیدم که آیکون عوض میشه، 100% یه راهی داره.

mrtzxxx
چهارشنبه 19 آذر 1393, 23:36 عصر
در اینصورت فکر کنم نشه
داداش خسته نباشید.:قهقهه: شما بشین رو همون پروژتون کار کن.

pbm_soy
پنج شنبه 20 آذر 1393, 01:35 صبح
در لینک زیر توضیحات کامل در رابطه با این موضوع وجود دارد

در واقع همون روشی که در پستهای قبلی عنوان کردم را پیاده سازی کردن (یعنی پاک کردن فایل آیکن و کپی کردن فایل آیکن جدید در فولدر drawable )

http://stackoverflow.com/questions/1103027/how-to-change-an-application-icon-programmatically-in-android

dasssnj
پنج شنبه 20 آذر 1393, 11:51 صبح
به این کارا احتیاج نیست .

کافیه مثلا چهار تا اکتیویتی اسپلش اسکرین داشته باشی که ایکن های متفاوتی براشون توی منیفست ذکر کرده باشی ، و به جز یکی بقیه disable باشن ، یعنی :

android:enabled="false"

بعد ، وقتی کاربر تم را عوض کرد اکتیویتی که فعال هست غیر فعال بشه و اون که ایکنش مربوط به تم میشه فعال بشه .


PackageManager pm = getPackageManager();
// Disable
pm.setComponentEnabledSetting(new ComponentName(this, com.packagename.MyActivity.class),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

// Enable
pm.setComponentEnabledSetting(new ComponentName(this, com.packagename.MyActivity.class),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);



به جای com.packagename.MyActivity.class هم باید اسم کلاس اکتیویتی مورد نظر شما نوشته بشه .

dasssnj
پنج شنبه 20 آذر 1393, 12:35 عصر
نوشتمش . الان کل پروژه را می زارم

dasssnj
پنج شنبه 20 آذر 1393, 12:42 عصر
توی نمونه برنامه های کوچک و مفید قرارش دادم .

بفرمایید :

http://barnamenevis.org/showthread.php?401729-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF&p=2145617&viewfull=1#post2145617

خودتون هر جوری خواستید ، تغییرش بدید .

تشکر هم فراموش نشه ! :لبخند:

rtvrtv
پنج شنبه 20 آذر 1393, 13:42 عصر
داداش خسته نباشید.:قهقهه: شما بشین رو همون پروژتون کار کن.

من تازه کارم با این حال همتون گفتین نمیشه من گفتم میشه دیدید که بالاخره هم بچه ها نوشتنش:قهقهه:
شما باز بگو نمیشه

rtvrtv
پنج شنبه 20 آذر 1393, 13:46 عصر
وقتی شرکتی میاد واسه گرافیک برنامش xml میزاره این یعنی کاربر محدود نیست! اگه ما بلد نباشیم نمیتونیم بگیم راهی نداره! فقط میتونیم بگیم ما بلد نیستیم !
دوست عزیز پیشنهاد میکنم کمی xml کار کنیم من xml بلدم دارم تازه اندروید کار میکنم ولی xml خیلی وسیعه
شبیهش قبلن کار میکردم تو wpf !

rtvrtv
پنج شنبه 20 آذر 1393, 13:47 عصر
توی نمونه برنامه های کوچک و مفید قرارش دادم .

بفرمایید :

http://barnamenevis.org/showthread.php?401729-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF&p=2145617&viewfull=1#post2145617

خودتون هر جوری خواستید ، تغییرش بدید .

تشکر هم فراموش نشه ! :لبخند:
مرسی ....................................

dasssnj
پنج شنبه 20 آذر 1393, 14:02 عصر
برای تشکر از دکمه ی تشکر استفاده کنید .

=====================================

لینک تصحیح شد . (باگ ها بر طرف شد ، هر مشکلی داشت بگید)

http://barnamenevis.org/showthread.php?401729-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF&p=2145617&viewfull=1#post2145617

hsgpro
پنج شنبه 20 آذر 1393, 14:55 عصر
سلام
با استفاده از خط فرمان برنامه Resorce Hacker می تونی این کار رو انجام بدی.

dasssnj
پنج شنبه 20 آذر 1393, 16:20 عصر
سلام
با استفاده از خط فرمان برنامه Resorce Hacker می تونی این کار رو انجام بدی.

این برنامه مگه برای کامپیوتر نیست ؟ چه ربطی به اندروید داره اصلا ؟

hsgpro
پنج شنبه 20 آذر 1393, 16:55 عصر
این برنامه مگه برای کامپیوتر نیست ؟ چه ربطی به اندروید داره اصلا ؟

عه؟ حواسم نبود اون بالا رو نگاه نکردم فکر کردم می خواین آیکون برنامه کامپیوتری رو تغییر بدین.شرمنده.

pouya1999best@g
پنج شنبه 20 آذر 1393, 18:36 عصر
ولی یه سوال؛آیا این روش بهینه هست؟
روش های بهتری وجود دارد؟

dasssnj
پنج شنبه 20 آذر 1393, 18:38 عصر
به نظرم این بهترین روشه .

mrtzxxx
پنج شنبه 20 آذر 1393, 19:56 عصر
من تازه کارم با این حال همتون گفتین نمیشه من گفتم میشه دیدید که بالاخره هم بچه ها نوشتنش:قهقهه:
شما باز بگو نمیشه
از دوست خوبم dasssnj (http://barnamenevis.org/member.php?262850-dasssnj) ممنون راه حل خوبی بود که گفتن.
بله شد ولی با محدودیتهای بسیار . شاید یکی بخواد خودش یه آیکن از تو گوشیش انتخاب کنه! شاید مثلا بخوایم هر روز ماه یه آیکون داشته باشه یعنی 30 تا آیکن آیا باید 30 تا اکتیویتی تعریف کرد ؟ و...

#root#
پنج شنبه 20 آذر 1393, 20:18 عصر
وقتی شرکتی میاد واسه گرافیک برنامش xml میزاره این یعنی کاربر محدود نیست! اگه ما بلد نباشیم نمیتونیم بگیم راهی نداره! فقط میتونیم بگیم ما بلد نیستیم !
دوست عزیز پیشنهاد میکنم کمی xml کار کنیم من xml بلدم دارم تازه اندروید کار میکنم ولی xml خیلی وسیعه

فقط این کار چه ارتباطی به xml داشت؟

dasssnj
جمعه 21 آذر 1393, 07:25 صبح
از دوست خوبم dasssnj (http://barnamenevis.org/member.php?262850-dasssnj) ممنون راه حل خوبی بود که گفتن.
بله شد ولی با محدودیتهای بسیار . شاید یکی بخواد خودش یه آیکن از تو گوشیش انتخاب کنه! شاید مثلا بخوایم هر روز ماه یه آیکون داشته باشه یعنی 30 تا آیکن آیا باید 30 تا اکتیویتی تعریف کرد ؟ و...

خواهش می کنم ....
اصن نباید دست کاربر را اینقدر باز گذاشت . الان شما برنامه های معروفی که تم می خورن را هم که میبینی با ایکن کاری ندارن .

mrtzxxx
جمعه 21 آذر 1393, 13:11 عصر
خواهش می کنم ....
اصن نباید دست کاربر را اینقدر باز گذاشت . الان شما برنامه های معروفی که تم می خورن را هم که میبینی با ایکن کاری ندارن .

بله درسته حرفتون . به نظر منم آیکن یعنی لوگوی یک برنامه بهتره اصلا دستکاری نشه حتی برای قشنگی . ولی ایرانی جماعت یعنی سر در آوردن از هر کاری:لبخند: . شاید فردا یکی بخواد یه برنامه آندرویدی رو با Qbasic بنویسه ؟ :قهقهه: