بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ساخت گالری عکس ساده با GrideView (ضروری)

مدیریت گفتگو
Shadow 11 سال پیش
آخرین تغییر: 10 سال پیش

دوستان کسی منبعی ، کدی ، فیلمی ، سراغ نداره که یه گالری عکس ساده رو با استفاده از گرید ویو با استفاده از عکس های داخل پوشهasset

نظرات

کاشی زاده 11 سال پیش
گرید ویو دقیقا مثل لیست ویو هست و همون کد هایی که برای لیست ویو نوشتید رو برای گرید ویو مینویسید .
Shadow 11 سال پیش
محسن جان لینکی که دادی خیلی مفید بود فقط یه مشکلی داره وقتی روی آیتم ها کلیک می کنی به اکتیویتی دیگه نمی ره و بعضی مواقع میاد بیرون از برنامه توی آموزش هم سوال کرده بودند ولی من جوابی پیدا نکردم می تونی دلیلش رو بفرمایید؟
محسن علیزاده 11 سال پیش
من ازش استفاده نکردم تا حالا، اما خب بگرد نمونه زیاد هست. چیزی که میخای و میتونی پیدا کنی...
Shadow 11 سال پیش
دقیقا چیزیه که می خواستم ولی روی اندروید 2.2 خوب کار می کنه ولی روی اندروید 4 به بالا کار نمی کنه

پاسخ‌ها 3

Shadow 11 سال پیش

نظرات

cormen2 10 سال پیش

لینکی که  آقای محسن علیزاده معرفی کردند بسیار خوب بود. من یه مشکلی دارم :  من برای نمایش در هر ایتم  gridView   کلا سه نوع تصویر با سه رنگ مختلف دارم. می خوام برای هر کدوم hover  مختص خودشو بزارم. یعنی تصویر زیرش عوض شه . کدی که برای تابع  getData نوشتم بصورت زیره ولی عمل نمیکنه. 

 private ArrayList<ImageItem> getData() {

final ArrayList<ImageItem> imageItems = new ArrayList<>();

String GrayUri = "@drawable/img_grid_gray_item";
String GrayUriDarker = "@drawable/img_grid_gray_darker_item";
String RedUri = "@drawable/img_grid_red_item";
String RedUriDarker = "@drawable/img_grid_red_darker_item";
String GreenUri = "@drawable/img_grid_green_item";
String GreenUriDarker = "@drawable/img_grid_green_darker_item";

int imageResourceGray = getResources().getIdentifier(GrayUri, null, getPackageName());
int imageResourceGrayDarker = getResources().getIdentifier(GrayUriDarker, null, getPackageName());
int imageResourceRed = getResources().getIdentifier(RedUri, null, getPackageName());
int imageResourceRedDarker = getResources().getIdentifier(RedUriDarker, null, getPackageName());
int imageResourceGreen = getResources().getIdentifier(GreenUri, null, getPackageName());
int imageResourceGreenDarker = getResources().getIdentifier(GreenUriDarker, null, getPackageName());

StateListDrawable statesRed = new StateListDrawable();
statesRed.addState(new int[] {android.R.attr.state_pressed},
getResources().getDrawable(imageResourceRedDarker));
statesRed.addState(new int[]{},
getResources().getDrawable(imageResourceRed));

StateListDrawable statesGray = new StateListDrawable();
statesGray.addState(new int[] {android.R.attr.state_pressed},
getResources().getDrawable(imageResourceGray));
statesGray.addState(new int[]{},
getResources().getDrawable(imageResourceGrayDarker));

StateListDrawable statesGreen = new StateListDrawable();
statesGreen.addState(new int[] {android.R.attr.state_pressed},
getResources().getDrawable(imageResourceGreen));
statesGreen.addState(new int[]{},
getResources().getDrawable(imageResourceGreenDarker));


for (int i = 0; i < livePuzzleInfos.size(); i++) {

if(livePuzzleInfos.get(i).score == -1) {
imageItems.add(new ImageItem(statesGray, livePuzzleInfos.get(i).id));
}

if(livePuzzleInfos.get(i).score> 0) {
imageItems.add(new ImageItem(statesGreen, livePuzzleInfos.get(i).id));
}

if(livePuzzleInfos.get(i).score == 0) {
imageItems.add(new ImageItem(statesRed, livePuzzleInfos.get(i).id));
}
}
return imageItems;
}

نظرات

cormen2 10 سال پیش

کد تمیز ترش اینه : (کار کرد ولی یکی رو که تاچ کنی یکی دیگه رنگش عوض میشه) : 

 private ArrayList<ImageItem> getData() {

final ArrayList<ImageItem> imageItems = new ArrayList<>();

String GrayUri = "@drawable/img_grid_gray_item";
String GrayUriDarker = "@drawable/img_grid_gray_darker_item";
String RedUri = "@drawable/img_grid_red_item";
String RedUriDarker = "@drawable/img_grid_red_darker_item";
String GreenUri = "@drawable/img_grid_green_item";
String GreenUriDarker = "@drawable/img_grid_green_darker_item";

int imageResourceGray = getResources().getIdentifier(GrayUri, null, getPackageName());
int imageResourceGrayDarker = getResources().getIdentifier(GrayUriDarker, null, getPackageName());
int imageResourceRed = getResources().getIdentifier(RedUri, null, getPackageName());
int imageResourceRedDarker = getResources().getIdentifier(RedUriDarker, null, getPackageName());
int imageResourceGreen = getResources().getIdentifier(GreenUri, null, getPackageName());
int imageResourceGreenDarker = getResources().getIdentifier(GreenUriDarker, null, getPackageName());

StateListDrawable statesRed = new StateListDrawable();
statesRed.addState(new int[] {android.R.attr.state_pressed},getResources().getDrawable(imageResourceGray));
statesRed.addState(new int[] {android.R.attr.state_focused},getResources().getDrawable(imageResourceGray));
statesRed.addState(new int[]{},getResources().getDrawable(imageResourceRed));

StateListDrawable statesGray = new StateListDrawable();
statesGray.addState(new int[] {android.R.attr.state_pressed},getResources().getDrawable(imageResourceGreen));
statesGray.addState(new int[] {android.R.attr.state_focused},getResources().getDrawable(imageResourceGreen));
statesGray.addState(new int[]{},getResources().getDrawable(imageResourceGray));

StateListDrawable statesGreen = new StateListDrawable();
statesGreen.addState(new int[] {android.R.attr.state_pressed}, getResources().getDrawable(imageResourceGray));
statesGreen.addState(new int[] {android.R.attr.state_focused}, getResources().getDrawable(imageResourceGray));
statesGreen.addState(new int[]{}, getResources().getDrawable(imageResourceGreen));


for (int i = 0; i < livePuzzleInfos.size(); i++) {

if(livePuzzleInfos.get(i).score == -1) {
imageItems.add(new ImageItem(statesGray, livePuzzleInfos.get(i).id));
}

if(livePuzzleInfos.get(i).score> 0) {
imageItems.add(new ImageItem(statesGreen, livePuzzleInfos.get(i).id));
}

if(livePuzzleInfos.get(i).score == 0) {
imageItems.add(new ImageItem(statesRed, livePuzzleInfos.get(i).id));
}
}
return imageItems;
}

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .