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

آموزش استفاده از کتابخانه زوم دو انگشتی برای تصاویر (Pinch Zoom)

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

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

نظرات

پاسخ‌ها 5

مجتبی یگانه 12 سال پیش

با توجه به اینکه قبلا هم این درخواست مطرح شده بود و اینکه کتابخانه ها به صورت کامپایل نشده در سایت های مختلف وجود داشتند و دوستان در استفاده ازشون مشکل داشتند ، من این لایبرری رو کامپایل کردم و به صورت یک فایل Jar اینجا برای دانلود میزارم :)

و اما نحوه ی استفاده :

LinearLayout layoutRoot = (LinearLayout) findViewById(R.id.LayoutRoot);
GestureImageView imageView = new GestureImageView(this);

imageView.setImageResource(R.drawable.image);
LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
imageView.setLayoutParams(params);
layoutRoot.addView(imageView);

اول یک LinearLayout رو به متغییر نسبت میدیم ، در زمان اجرا یک GestureImageView میسازیم ، مثل یک ImageView میشه بهش تصویر نسبت داد بعد از انجام این کار میتونید طول و عرض اش رو تنظیم کنید که من با LayoutParams این کار رو کردم و در نهایت اون رو به Linear Layout اضافه کنید :)layoutRoot.addView(imageView);   z

اگر در استفاده ازش مشکل دارید ، میتونید پروژه رو از اینجا دانلود و ایمپورت کنید :) 

 

نظرات

MeY3am 12 سال پیش
ممنون آقامجتبی عزیز
نورحسینی 12 سال پیش
چقدر خوب میشه استاد این انیمیشن vote رو برداره . خرابه کنده همش میچرخه و وقت آدم رو میگیره . من که دیگه رای نمیدم و تایپی تشکر میکنم .
MeY3am 12 سال پیش
نورحسینی@ از کروم استفاده کنید این انیمیشن رو نمیبینید به راحتی میتونید Vote کنید بدون دردسر
مجتبی یگانه 12 سال پیش
منم کروم دارم ، البته انمیشین مربوط به زمان لودینگ میشه !
h_r_v 12 سال پیش
امکان استفاده اش برای متن و Textview هم هست؟
Seyed.Mahdi 12 سال پیش
حاجي خدا خيرت بده توهم داري به استاد نزديك ميشيا !!!! از اين نظر كه همه دارن دعات ميكنن . من خودم يكي از اوناييم كه همش تسبيح دستمه دارم شما رو دعا ميكنمو دائم الذكرم (واي خدا باز ريا نشه ) :D
بانوی شرقی 12 سال پیش
سلام. منظورتون از GestureImageView ساختن چی هست؟ من فایلی که گذاشتین رو دانلود کردم یه مشت ارور داشت . خودم شروع کردم کار کشابه رو انجام دادم. اما اون تیکه قاطی کردم . نمیدونم منظورتون چیه GestureImageView imageView = new GestureImageView(this);
مجتبی یگانه 12 سال پیش
فایلی که واسه دانلود گذاشتم یک کتابخانه کامپایل شده هست ، یعنی یک فایل jar - شما این فایل رو ایمپورت کنید و به Build path تون اضافه کنید تا وقتی تو محیط گفتید GestureImageView از اون کتابخانه خونده بشه و شناخته شده باشه ! ، این یک کنترل سفارشی هست ، یک کنترل سفارشی که همون ایمیج ویو هست ، ولی رویداد های تاچ رو میفهمه و بهش واکنش نشون میده
بانوی شرقی 12 سال پیش
با عرض شرمندگی شدید! میشه بگید چطوری به Build path اضافه کنم؟
مجتبی یگانه 12 سال پیش
بعد از گذاشتن فایل jar در پوشه libs روی اون راست کلیک کنید ، اگه add to > build path داشت که یعنی ادد نشده و باید اد اش کنید ، اگه نداشت یعنی اد شده ، حالا اگه اد شده باشه که دیگه کار تمومه و همه چی آرومه D:
بانوی شرقی 12 سال پیش
من همین کارو انجام میدم در حد خودکشی اررور داره. فکر کنم بنده از پایه با این مبحث مشکل داشته باشم :( استاد library ها رو درس دادن؟ تو کدو ویدئو هست؟
مجتبی یگانه 12 سال پیش
بله ولی حضور ذهن ندارم دقیقا کدوم ویدئو !
آس 11 سال پیش
در قسمت دوم بخش 21 هست فکر کنم لایبرری ها ! قسمت آموزش اسلایدینگ منو ;-)
بانوی شرقی 11 سال پیش
ممنون از همگی مخصوصا A.L.U بخاطر لایبرری شون . :)
مصطفی  11 سال پیش
ایول به این هوش و استعداد دستتون درد نکنه من که جزء طرفدارات شدم A.L.U خدا خیرت بده
دبیری 10 سال پیش
میشه لینک دانلود رو تصحیح کنیو ما هم بهره مند شیم ؟
Stark 10 سال پیش
عالی بود مرسی
ali 2011 11 سال پیش

با سلام!

خدا خیرت بده اقایA.L.U من همین کده شمارو توی یک پروژه جدید مخصوص خودش گذاشتم و بدون مشکل اجرا شد! ولی بعد رفتم همین کدو توی برنامه ی اصلیم بزارم برنامه  image view داره و حدود پنجاه تا تصویر داره که با حرکت انگشت اینور اونور میره ولی همون کد روی اون برنامه کار نکرد یعنی زوم نمکیرد روی همون تصویری که بهش گفتم و با زوم کردن تصویر بعدی رو میاورد ! و اینکه اگه من بخوام که روی هر پنجاه تا تصویر همرو بتونم زوم کنم چیکار کنم اخه این فقط روی همون تصویری زوم میکنه که بهش گفتیم!

ترو خدا کمک کنید!

با تشکر فراوان!

نظرات

مجتبی یگانه 11 سال پیش

خواهش میکنم

من یه چیز خیلی کلی میگم ، شما خودتون جزئی ازش استفاده کنید !

فرض کنید 100 جا نیاز باز a+b بشه ، آیا 100 بار این دستور رو می نویسید ؟! ، قطعا اگر تمیز کد بزنید نه !

پس : یک اکتیویتی به نام ActivityZoom بسازید و هر بار میخواین بازش کنید ، نسبت به نیازی که دارید ، آدرس یا نام تصویر رو روی intent اش بزارید

 intent.putExtra("Image",path+"/images/image1.jpg");

پس میتونید در ActivityZoom این مقدار رو بگیرید و بگید اگر تصویر در مسیر وجود داشت ، Set کن رو GustureImageView در غیر اینصورت پیام مناسب رو چاپ کنید :)

نظرات

novinfekr 11 سال پیش
سلام.میشه یک نمونه مثال بزنید خیلی گیرم.میخوام هر جایی که خواستم رو ایمیج زوم بشه.
آس 11 سال پیش
من متوجه نشدم میشه لطفا یکم بیشتر توضیح بدین؟
مجتبی یگانه 11 سال پیش
کجاش مشکل دارید ؟! ، پاس دادن یک مقدار هست دیگه ! ، بخش های اول آموزش ، مقدار اون متغییر هم آدرس عکسی هست که باید زوم بشه
novinfekr 11 سال پیش
آقای ALU لطفا یک سورس که هر عکسی داشتیم بشه روش زوم کرد رو بزارید،نیاز خیلی از بچه هاست.ممنون میشیم
آس 11 سال پیش
همینی که میگین بذار روی intent ش رو نفهمیدم ، چجوری اینتنتش رو بهش وصل کنم؟
MeY3am 11 سال پیش

ممنون از لطفت مجتبی جان؛

حالا اگه بخواهیم عکسی رو که از گالری کاربر انتخاب شده رو زوم کنیم باید چیکار کنیم؟

یعنی به جای   R.drawable     از    R.id    استفاده کنیم و آیدی ImageView موردنظررو بهش بدیم (همونکه عکس انتخاب شده از گالری کاربر درونش ست میشه)   !

نظرات

مجتبی یگانه 11 سال پیش
اون GestureImageView یک ایمیج ویو هست ! ، پس میشه setBitMap اش رو صدا زد ! ، حالا کافیه شما آدرس تصویر انتخاب شده ی کاربر رو داشته باشید که قطعا دارید (!) ، پس ساخت بیت مپ هم از یک آدرس نباید کار سختی باشه :)
MeY3am 11 سال پیش
ممنون صادق جان، شاید بعضی از دوستان متوجه منظور شما نشده باشن لطف کنید خودتون بعنوان پاسخ جدید منظورتون رو واضح بیان کنید و شفاف سازی کنید :)))
MeY3am 11 سال پیش
وای خدا باز اول صبح شد من قاطی کردم، ببخشی مجتبی جان اسمتو اشتباهی گفتم، خب حق بده :(
MeY3am 11 سال پیش

مجتبی عزیز  Bitmap رو با استفاده از این دستور ساختم

 Bitmap bm = BitmapFactory.decodeResource(getResources(), R.id.ImageView);
bm.createBitmap(bm);

 حالا موندم آدرس تصویر انتخاب شده ی کاربر رو از کجا پیدا کنم و setBitMap رو کجا صدا بزنم؟

نظرات

MeY3am 11 سال پیش
ممنون اسپیریت جان لینک خوبیه و تعداد لایک سورس ها بالاست ولی متأسفانه زوم اون چیزی که مدنظرم هست داخل سورس ها وجود نداشت!
مجتبی یگانه 11 سال پیش
ببخشید اما سوالتون به این تاپیک ربطی نداره ! ، شما نحوه ی انتخاب عکس از گالری رو نمیدونید که اسپریت لینک کرد ، برای تمیز موندن تاپیک سوالتون پاک میشه ، میتونید در تاپیک دیگه ای سوالتون رو مطرح کنید
MeY3am 11 سال پیش
واقعأ سئوال من این هستش که نحوه ی انتخاب عکس از گالری رو نمیدونم؟ سئوال منو یه بار دیگه بخونید شما که متوجه بشید، من فقط نحوه زوم کردن بر روی تصویری که از گالری انتخاب شده رو میخوام نه انتخاب عکس از گالری!
مجتبی یگانه 11 سال پیش
بله ! " حالا موندم آدرس تصویر انتخاب شده ی کاربر رو از کجا پیدا کنم" ، شما از روی آدرس یه بیت مپ بسازید ، بعد همون رو روی GestureImageView ست کنید :)
MeY3am 11 سال پیش
این کد BitMap که تو همین پاسخ گذاشتم صحیح هست یا باید تغییرش بدم؟
مجتبی یگانه 11 سال پیش
خوب الان سوالتون مرتبطه ؟! ، ساخت بیت مپ از یه File تو اولین قسمت های آموزش هاست ! شما باید از decodeFile استفاده کنید و پارامتر آدرس فایل تصویری هست :)

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