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



چرخش تصویری که از گالری کاربر انتخاب میشود (در برنامه نویسی اندروید)زمان کنونی: ۱۳۹۵/۰۹/۱۸، ۰۲:۲۱ ب.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: restless
آخرین ارسال: restless
پاسخ 8
بازدید 2904

رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
چرخش تصویری که از گالری کاربر انتخاب میشود (در برنامه نویسی اندروید)

چرخش تصویری که از گالری کاربر انتخاب میشود (در برنامه نویسی اندروید)

#1
با سلام، با توجه به کلید
 http://www.kelidestan.com/keys/keys.php?key=354 چرخش یک عکس (بر حسب درجه) و نمایش آن در یک ImageView 

که فقط یک عکس را که در پوشه drawableها موجود هست رو می چرخاند، من میخوام عکسی رو که از گالری کاربر انتخاب میشه رو بچرخونه یعنی به جای R.drawable از R.id استفاده کنم!
ممنون میشم راهنمایی بفرمایید!
پاسخ

چرخش تصویری که از گالری کاربر انتخاب میشود (در برنامه نویسی اندروید)

#2
ممنون میشم پیگیری بفرمایید...
پاسخ

چرخش تصویری که از گالری کاربر انتخاب میشود (در برنامه نویسی اندروید)

#3
سلام.
اگر قصد دارید که بر اساس مسیر (path) عکس در حافظه خارجی (External Storage) کد بنویسید، کد زیر را ببینید :

کد پی‌اچ‌پی:
String photoPath Environment.getExternalStorageDirectory()+"/myFolder/myImage.png";

BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig Bitmap.Config.ARGB_8888;
Bitmap bitmap BitmapFactory.decodeFile(photoPathoptions);    
        
ImageView iv = (ImageViewfindViewById(R.id.imageView1);
iv.setImageBitmap(bitmap); 

با آن، یک عکس با نام myImage که در پوشه ای با نام myFolder قرار دارد را از حافظه خارجی (External Storage) خوانده و به Bitmap تبدیل کرده و سپس در یک ImageView نمایش داده ایم.

اما اگر قصد دارید که کاربر عکس را از گالری انتخاب نماید، لینک زیر را ببینید :

http://viralpatel.net/blogs/pick-image-f...droid-app/

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

چرخش تصویری که از گالری کاربر انتخاب میشود (در برنامه نویسی اندروید)

#4
ممنون از پاسختون ولی من برای لود کردن عکس از گالری کاربر هیچگونه مشکلی ندارم،این کد رو مشاهده کنید:

کد پی‌اچ‌پی:
Bitmap bm_1 BitmapFactory.decodeResource(getResources(), R.drawable.myImage); // >>>> Replace to R.id.ImageView <<<<
Matrix matrix = new Matrix();
float angle 90;
matrix.postRotate(angle);

Bitmap bm_2 Bitmap.createBitmap(bm_100bm_1.getWidth(), bm_1.getHeight(), matrixtrue);

ImageView iv = (ImageViewfindViewById(R.id.imageView1);
iv.setImageBitmap(bm_2); 

یعنی میخوام که به جای  R.drawable.myImage از R.id.ImageView استفاده کنم ، ممنون میشم راهنمایی کنید!
پاسخ

چرخش تصویری که از گالری کاربر انتخاب میشود (در برنامه نویسی اندروید)

#5
ولی R.id.ImageView متناظر با عنصر ImageView در فایل xml است، نه عکسی که با آن سر و کار داریم. از این عبارت، برای ارجاع به یک عنصر ImageView با id برابر ImageView استفاده می کنیم. ما در پروژه اندروید، کلاسی (Class) با نام R داریم که این موارد در آن ذخیره می شود، اگر یک عنصر با id مشخص در پروژه اندروید بسازیم (در یک فایل xml)، عبارت مربوط به آن، مشابه R.id.ImageView است و کلمه id در آن عبارت قرار می گیرد، اما اگر عکسی را در پوشه های drawable از پروژه اندروید کپی کنیم، عبارتی مشابه عبارت R.drawable.myImage برای ارجاع به آن، در کلاس R ذخیره می شود که کلمه drawable در آن به کار رفته و از آن برای ارجاع به عکس مورد نظر استفاده می کنیم.
بد نیست کلاس R یک پروژه اندروید را باز کرده و نگاهی به آن بیندازید (آن را تغییر ندهید، چون این کلاس، به صورت خودکار تغییر پیدا می کند و نباید آن را دستکاری کنیم) :

   

به عنوان یک مثال :

کد پی‌اچ‌پی:
/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package com.kelidestan.com;

public final class 
{
    public static final class 
attr {
    }
    public static final class 
dimen {
        
/**  Default screen margins, per the Android Design guidelines. 

         Customize dimensions originally defined in res/values/dimens.xml (such as
         screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here.
    
         */
        
public static final int activity_horizontal_margin=0x7f040000;
        public static final 
int activity_vertical_margin=0x7f040001;
    }
    public static final class 
drawable {
        public static final 
int g=0x7f020000;
        public static final 
int ic_launcher=0x7f020001;
    }
    public static final class 
id {
        public static final 
int action_settings=0x7f080001;
        public static final 
int imageView1=0x7f080000;
    }
    public static final class 
layout {
        public static final 
int activity_main=0x7f030000;
    }
    public static final class 
menu {
        public static final 
int main=0x7f070000;
    }
    public static final class 
string {
        public static final 
int action_settings=0x7f050001;
        public static final 
int app_name=0x7f050000;
        public static final 
int hello_world=0x7f050002;
    }
    public static final class 
style {
        
/** 
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
    

            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.
        

        Base application theme for API 11+. This theme completely replaces
        AppBaseTheme from res/values/styles.xml on API 11+ devices.
    
 API 11 theme customizations can go here. 

        Base application theme for API 14+. This theme completely replaces
        AppBaseTheme from BOTH res/values/styles.xml and
        res/values-v11/styles.xml on API 14+ devices.
    
 API 14 theme customizations can go here. 
         */
        
public static final int AppBaseTheme=0x7f060000;
        
/**  Application theme. 
 All customizations that are NOT specific to a particular API-level can go here. 
         */
        
public static final int AppTheme=0x7f060001;
    }


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

چرخش تصویری که از گالری کاربر انتخاب میشود (در برنامه نویسی اندروید)

#6
ادمین محترم ممنون از پاسختون، شما فرض کنید که میخوام یه عکس رو از گالری کاربر انتخاب کنم و در یک ImageView به نام ImageView1 قرار بدم و بعد از قراردادن تصویر در ایمیج ویو موردنظر، میخوام بعد اینکه یک Button لمس شد یعنی OnClick شد، عکسی رو که در ImageView1 قرار دارد یه سری عملیات روش انجام بدم مثلأ 90 درجه عکس رو بچرخونم و Rotate بشه، فقط همین، امیدوارم منظورمو کامل منتقل کرده باشم، البته بنده در کد لود گالری و قراردادن عکس انتخابی توسط کاربر هیچگونه مشکلی ندارم و مشکل در چرخاندن همون عکس دارم که کاربر از گالری انتخاب کرده، ممنون میشم مساعدت بفرمایید    بدجور گیرم  
پاسخ

چرخش تصویری که از گالری کاربر انتخاب میشود (در برنامه نویسی اندروید)

#7
شما قصد دارید که عکس را از ImageView گرفته و بعد تبدیلات مورد نظرتان را انجام بدهید که روش غلطی است و باید در همان مرحله ای که کاربر عکس را انتخاب می کند، تغییرات مورد نظرتان را انجام بدهید و بعد عکس را در ImageView نمایش بدهید یا اگر برایتان مهم است که ابتدا عکس اصلی در ImageView نمایش داده شود، همان زمان که عکس را انتخاب می کنیم، مسیر عکس را در متغیر ذخیره می کنیم (که بعد برای انجام تغییرات و نمایش عکس تغییر داده شده، به کار رود)(یا اینکه اصلا آن را به صورت یک متغیر Bitmap خواهیم داشت که برای تغییرات بعدی به کار می رود).

------------------------------------------

به هر حال، فرض می کنیم که شما عکس انتخاب شده توسط کاربر را به صورت Bitmap دارید (همین عکس به صورت Bitmap را قبلا در ImageView نمایش داده ایم و حالا قصد داریم که با اعمال تغییراتی، عکس جدیدی را در ImageView نمایش بدهیم، پس کاری با ImageView نداریم . عکس به صورت Bitmap را تغییر می دهیم)، اون کدی که گفتید، یا مسیر فایل عکس موجود در گالری رو به شما داده یا آن عکس را به صورت Bitmap در اختیار شما قرار داده، اگر به صورت Bitmap هست که مشکلی نیست، اما اگر مسیر (path) فایل عکس در حافظه خارجی (External Storage) رو به شما داده، با استفاده از کلید زیر، ابتدا آن را به Bitmap تبدیل کنید :

کلید شماره 2996

خوب تا اینجا، عکس اصلی را به صورت Bitmap داریم، اکنون با استفاده از کلید زیر، آن را می چرخانید :

کلید شماره 354

حالا با استفاده از کلید زیر، عکس را که به صورت Bitmap است در Imageview نمایش می دهید (نمایش در Imageview را در مرحله آخر انجام می دهیم) :

کلید شماره 2997

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

چرخش تصویری که از گالری کاربر انتخاب میشود (در برنامه نویسی اندروید)

#8
ممنون از پاسخ شما ادمین محترم، مثلأ من اگر بخوام مسیر عکسی را که کاربر درگالری انتخاب کرده  را در متغیری ذخیره کنم باید از این کد استفاده کنم درسته؟
کد پی‌اچ‌پی:
String photoPath Environment.getExternalStorageDirectory()+"/myFolder/myImage.png";

BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig Bitmap.Config.ARGB_8888;
Bitmap bitmap BitmapFactory.decodeFile(photoPathoptions);   
                
ImageView iv = (ImageViewfindViewById(R.id.imageView1);
iv.setImageBitmap(bitmap); 
ولی یک عکس با نام myImage که در پوشه ای با نام myFolder قرار دارد در حافظه خارجی موجود نیست،
1- باید دقیقأ چیکار کنم که بتونم مسیر عکسی را که کاربر درگالری انتخاب کرده  را در متغیری ذخیره کنم؟
2- اگر بخوام عکس انتخاب شده توسط کاربر را به صورت Bitmap داشته باشم باید چیکار کنم و از چه کدی استفاده کنم؟ که بتونم تغییرات و عملیاتی انجام بدم!
3- به نظر شما کدوم یکی راحت تر و مناسب تر هستش و منو به نتیجه مطلوب میرسونه؟

بنده در مبحث Bitmap ها یه مقداری ضعیف هستم یعنی هر پارامتر رو دقیقأ نمیدونم برای چه کاری به کار میره مثلأ BitmapFactory یا decodeResource یا decodeFile و ...  چه موقع و برای چه کاری باید استفاده کنیم؟


این از کد onActivityResult که از Uri استفاده کردم برای نمایش عکس انتخاب شده از گالری کاربر که فکرکنم برای توجیه کردن بد نباشه
کد پی‌اچ‌پی:
@Override
    
protected void onActivityResult(int requestCodeint resultCodeIntent data) {
        
super.onActivityResult(requestCoderesultCodedata);
        if (
requestCode == REQ_CODE_PICK_IMAGE && resultCode == RESULT_OK && data != null) {
            
ImageView.setImageURI(data.getData());
        } 
ممنونم از راهنمایی های شما ادمین محترم 

 
پاسخ


پرش به انجمن:


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

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)