رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

مشکل در گرفتن اسکرین شات


پست های پیشنهاد شده

سلام دوستان

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

ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 15 دقیقه قبل، samir samiri گفته است :

سلام دوستان

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

ممنون

عکس گرفتن از صفحه نمایش

private void takeScreenshot() {
    Date now = new Date();
    android.text.format.DateFormat.format("yyyy-MM-dd_hh:mm:ss", now);

    try {
        // image naming and path  to include sd card  appending name you choose for file
        String mPath = Environment.getExternalStorageDirectory().toString() + "/" + now + ".jpg";

        // create bitmap screen capture
        View v1 = getWindow().getDecorView().getRootView();
        v1.setDrawingCacheEnabled(true);
        Bitmap bitmap = Bitmap.createBitmap(v1.getDrawingCache());
        v1.setDrawingCacheEnabled(false);

        File imageFile = new File(mPath);

        FileOutputStream outputStream = new FileOutputStream(imageFile);
        int quality = 100;
        bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream);
        outputStream.flush();
        outputStream.close();

        openScreenshot(imageFile);
    } catch (Throwable e) {
        // Several error may come out with file handling or OOM
        e.printStackTrace();
    }
}

نمایش تصویر 

private void openScreenshot(File imageFile) {
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    Uri uri = Uri.fromFile(imageFile);
    intent.setDataAndType(uri, "image/*");
    startActivity(intent);
}

مانیفست

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

اگر قصد دارید که در فرگمنت استفاده کنید کد زیر رو هم بگذارید

View v1 = getActivity().getWindow().getDecorView().getRootView();

 

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون

ولی من میخام کل اطلاعات داخل عکس بیفته هر چند که صفحه ی گوشی اونو به علت زوم شدن یا به علت اسکرول و ... نشون نده( یعنی جا نشه واسش)

مثل همین فایل پیوستی :

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

1.jpg.7aa51edf7025d6961d13f2f1970d24b3.jpg

 

لطفا راهنمایی کنید. ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

این مشکل رو حل کردم ولی حالا یه مشکل جدید دارم :

وقتی وب ویو ام حالت غیر زوم هست ویا کمی زوم هست درست کار میکنه ولی وقتی که یکم بیشتر زوم میکنم و اسکرین شات میگیرم میندازه بیرون .البته داخل بلو استک و شبیه ساز مشکلی اصلا نداره ولی داخل گوشی واقعی این مشکل واقعا عجیب هست چیکار میتونم بکنم .

ممنون میشم راهنمایی کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اگر خطای شما  از java.lang.OutOfMemory  هستش این میتونه کمکتون کنه

/**
 * Checks if a bitmap with the specified size fits in memory
 * @param bmpwidth Bitmap width
 * @param bmpheight Bitmap height
 * @param bmpdensity Bitmap bpp (use 2 as default)
 * @return true if the bitmap fits in memory false otherwise
 */
public static boolean checkBitmapFitsInMemory(long bmpwidth,long bmpheight, int bmpdensity ){
    long reqsize=bmpwidth*bmpheight*bmpdensity;
    long allocNativeHeap = Debug.getNativeHeapAllocatedSize();


    final long heapPad=(long) Math.max(4*1024*1024,Runtime.getRuntime().maxMemory()*0.1);
    if ((reqsize + allocNativeHeap + heapPad) >= Runtime.getRuntime().maxMemory())
    {
        return false;
    }
    return true;

}

مثال :

       BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
        bmpFactoryOptions.inJustDecodeBounds=true;
        BitmapFactory.decodeFile(path,bmpFactoryOptions);
        if ( (runInSafeMemoryMode()) && (!Manager.checkBitmapFitsInMemory(bmpFactoryOptions.outWidth, bmpFactoryOptions.outHeight, 2)) ){
            Log.w(TAG,"Aborting bitmap load for avoiding memory crash");
            return null;        
        }

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

با سپاس من نتونستم از این کد استفاده کنم.

اره مشکلش فک کنم از مموری بود . وقتی زوم میشد و می خواستم تبدیل به بیتمپ کنم مینداخت بیرون .

چون کیفیت عکس واسم مهم بود و تبدیل به بیت مپ هم این مشکل رو داشت . حالا میخام تبدیل به pdf کنم اش.

http://p30droid.com/topic/6242-کار-با-pdf/#comment-25000

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 2 سال بعد...
در در 1396/01/15, 18:50:53، samir samiri گفته است :

با سپاس من نتونستم از این کد استفاده کنم.

اره مشکلش فک کنم از مموری بود . وقتی زوم میشد و می خواستم تبدیل به بیتمپ کنم مینداخت بیرون .

چون کیفیت عکس واسم مهم بود و تبدیل به بیت مپ هم این مشکل رو داشت . حالا میخام تبدیل به pdf کنم اش.

http://p30droid.com/topic/6242-کار-با-pdf/#comment-25000

سلام

یک لیوت دارم که از موارد زیر تشکیل شده
بعضی مواقع لیست ویو مربوط به آن زیاد میشه مثلا تا ۱۵ ردیف که در لیست ویو هست فقط ۱۰ تاش را در صفحه نمایش گوشی نمایش میده باید چکار کنم بتونم به صورت کامل از لیست ویو و کل لیوت اسکرین شات بگیرم

این لیوت من از یک LinearLayout کلی تشکیل شده سپس از یک اسکرول ویو و باقی موارد در LinearLayout های جداگانه درون اسکرول ویو قرار دارد

کدهایی که در اینترنت اموزش دادن فقط از صفحه گوشی عکس میگیرن و نمیتونه از کل LinearLayout اول که همه عناصر دیگه درون اون قرار داره عکس بگیره
لیوت من در ادرس زیر هست:
http://s6.picofile.com/file/8375759834/content_image.rar.html

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 4 هفته بعد...
در در 1396/01/15, 18:50:53، samir samiri گفته است :

با سپاس من نتونستم از این کد استفاده کنم.

اره مشکلش فک کنم از مموری بود . وقتی زوم میشد و می خواستم تبدیل به بیتمپ کنم مینداخت بیرون .

چون کیفیت عکس واسم مهم بود و تبدیل به بیت مپ هم این مشکل رو داشت . حالا میخام تبدیل به pdf کنم اش.

http://p30droid.com/topic/6242-کار-با-pdf/#comment-25000

سلام

یک لیوت دارم که از موارد زیر تشکیل شده
بعضی مواقع لیست ویو مربوط به آن زیاد میشه مثلا تا ۱۵ ردیف که در لیست ویو هست فقط ۱۰ تاش را در صفحه نمایش گوشی نمایش میده باید چکار کنم بتونم به صورت کامل از لیست ویو و کل لیوت اسکرین شات بگیرم

این لیوت من از یک LinearLayout کلی تشکیل شده سپس از یک اسکرول ویو و باقی موارد در LinearLayout های جداگانه درون اسکرول ویو قرار دارد

کدهایی که در اینترنت اموزش دادن فقط از صفحه گوشی عکس میگیرن و نمیتونه از کل LinearLayout اول که همه عناصر دیگه درون اون قرار داره عکس بگیره
لیوت من در ادرس زیر هست:
http://s6.picofile.com/file/8375759834/content_image.rar.html

 

سلام
ایا هیچ راهنمایی برای این موضوع ندارید؟ 

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...