samir samiri

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

9 ارسال در این موضوع قرار دارد

سلام دوستان

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

ممنون

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 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

 

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

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


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

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

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

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

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


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

احتمالا از اندازه ی bitmap باشه . آیا بیت مپ محدویتی در اندازه داره ؟

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


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

اگر خطای شما  از 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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 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

 

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

 

 

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


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

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری