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

گرفتن Screen Shot از گوشی در فواصل زمانی بصورت سرویس

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

با سلام و خسته نباشید

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

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

نظرات

پاسخ‌ها 4

Hajhosseini 12 سال پیش

در فصل 20 آموزش ها روش انجام اینکار و خیلی چیزای دیگه آموزش داده شده

نظرات

Criss 12 سال پیش
متاسفانه توی فصل 21 راجب این موضوع صحبتی نشده !
uncocoder 12 سال پیش

گرفتن ScreenShot از گوشی کار ساده ای هست، همانطور که دوست شما لینکی ارائه داد قابل انجام است.

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

بنابراین توصیه اکید است که تا جاییکه می توانید از این قابلیت فقط در نرم افزار و نه به عنوان سرویس استفاده کنید.

نظرات

Criss 12 سال پیش

سلام دوستان من از این کد برای گرفتن اسکرین شات از صفحه گوشی استفاده کردم
اما برنامه کرش میکنه!
اگر ممکنه راهنمایی کنید<
توی Logcat هیچ ارروی به اسم اپلیکیشن وجود نداره !

 برای permision هم از

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

استفاده کردم.

 package com.screen.capture.criss;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;


public class ScreenCaptureActivity extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// image naming and path to include sd card appending name you choose for file
String mPath = Environment.getExternalStorageDirectory().toString() + "sdcard/media/cap.JPEG";

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

OutputStream fout = null;
File imageFile = new File(mPath);

try {
fout = new FileOutputStream(imageFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fout);
fout.flush();
fout.close();

}
catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

نظرات

آس 12 سال پیش
سلام اقا به نتیجه رسیدین؟ اخرش خلاصه؟ دی: من با قسمت مموری کاردش مشکل دارم اگر بخوام رو خود گوشی و تو خود گلری سیو کنم چه باید بکنم؟!
Criss 12 سال پیش
کدی که شما نوشتی بصورت سرویس هست؟ برای ذخیره در خود مموری از پست که قبلا در زیر گذاشتم استفاده کنید
Criss 12 سال پیش

با سلام مجدد

کلی سرچ کردم و با استفاده از اموزشی که توی سایت زیر داده شده تونستم از دیوایس اسکرین شات بگیرم !اما این اسکرین روی بک گراند اپلیکیشن به نمایش در میاد و سیو نمیشه !

ادرس سایت

نظرات


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