بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
ساخت گالری عکس ساده با GrideView (ضروری)
دوستان کسی منبعی ، کدی ، فیلمی ، سراغ نداره که یه گالری عکس ساده رو با استفاده از گرید ویو با استفاده از عکس های داخل پوشهasset
0
0
گرید ویو دقیقا مثل لیست ویو هست و همون کد هایی که برای لیست ویو نوشتید رو برای گرید ویو مینویسید . (10 سال پیش)
+3
0
لینک (10 سال پیش)
0
0
محسن جان لینکی که دادی خیلی مفید بود فقط یه مشکلی داره وقتی روی آیتم ها کلیک می کنی به اکتیویتی دیگه نمی ره و بعضی مواقع میاد بیرون از برنامه توی آموزش هم سوال کرده بودند ولی من جوابی پیدا نکردم می تونی دلیلش رو بفرمایید؟ (10 سال پیش)
0
0
من ازش استفاده نکردم تا حالا، اما خب بگرد نمونه زیاد هست. چیزی که میخای و میتونی پیدا کنی... (10 سال پیش)
0
0
دقیقا چیزیه که می خواستم ولی روی اندروید 2.2 خوب کار می کنه ولی روی اندروید 4 به بالا کار نمی کنه (10 سال پیش)
برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال
cormen2
10 سال پیش
0
0
لینکی که آقای محسن علیزاده معرفی کردند بسیار خوب بود. من یه مشکلی دارم : من برای نمایش در هر ایتم 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 سال پیش
0
0
کد تمیز ترش اینه : (کار کرد ولی یکی رو که تاچ کنی یکی دیگه رنگش عوض میشه) :
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;
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .