2010-09-17 29 views
10

Android ekranının ekran görüntüsünü alacak bir uygulama geliştirmek istiyorum .. herhangi biri nasıl yapacağını biliyor ..? hangi koushik duttas ekran görüntüsü benzer.Ama kökü kullanarak .. ve herhangi bir kimse çalışıyor koushik dutta ekran görüntüsü vardı ..? Benim için çalışmıyor ... lütfen bana haber verin ... önceden peşin.Android Ekran Yakalama

cevap

0

Kök veya SDK olmadan, imkansız olduğunu düşünüyorum.

Yanlış ispat edilmeyi çok isterim.

Bir uygulama değil, ancak bir USB kablonuz varsa, Android SDK'yı bir PC'ye yükleyebilir ve telefonunuzu rootlamak zorunda kalmadan PC'den androidscreencast ile ekran görüntülerini alabilirsiniz.

+0

HI nichola, sizin reply..then için teşekkürler Koushik duttas kod benim için çalışmıyor gibi u köklü telefonu .. çalışır herhangi çalışma kaynak kodu vardı yapmak. –

4

Sen Diyelim ki bir düğmeyi tıklama diyelim bu

private RelativeLayout view; 

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    view = (RelativeLayout)findViewById(R.id.relativeView); 

    View v1 = view.getRootView(); 

    v1.setDrawingCacheEnabled(true); 
    Bitmap bm = v1.getDrawingCache(); 
} 
19

gibi bir şey deneyebilirsiniz:

public Bitmap takeScreenshot() { 
    View rootView = findViewById(android.R.id.content).getRootView(); 
    rootView.setDrawingCacheEnabled(true); 
    return rootView.getDrawingCache(); 
} 

public void saveBitmap(Bitmap bitmap) { 
    File imagePath = new File(Environment.getExternalStorageDirectory() + "/screenshot.png"); 
    FileOutputStream fos; 
    try { 
     fos = new FileOutputStream(imagePath); 
     bitmap.compress(CompressFormat.PNG, 100, fos); 
     fos.flush(); 
     fos.close(); 
    } catch (FileNotFoundException e) { 
     Log.e("GREC", e.getMessage(), e); 
    } catch (IOException e) { 
     Log.e("GREC", e.getMessage(), e); 
    } 
} 
+1

Kaydedilmekte olan dosya bir .png olduğundan CompressFormat.JPG yerine CompressFormat.PNG kullanıyor musunuz? (veya dosya adını .jpg'ye çeviriniz) – joshaidan

+0

bu sadece temel kod örneğidir. İstediğinizi kullanabilirsiniz :) –

+2

Sadece söylüyorum, dosya adı olarak "screenshot.png" var, ancak sıkıştırma biçimi olarak CompressFormat.JPEG kullanıyor. Tutarsızlık. – joshaidan

3

yöntemi: Bu iki yöntem ihtiyaç Bundan sonra

findViewById(R.id.button1).setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Bitmap bitmap = takeScreenshot(); 
     saveBitmap(bitmap); 
    } 
}); 

view.getDrawingCache(), daha önce önbelleğe alınmış olan bir görüntüyü almaya çalışır. Ekran görüntüsünüzün güncel olmasını garanti etmek istiyorsanız bu sorunlara neden olabilir. Örneğin, kullanıcı ekran görüntüsü düğmesini tıklarsa, kullanıcı arayüzünü değiştirir ve ardından tekrar tıklarsa, önbelleği silmediğiniz sürece ikinci ekran görüntüsü ilkle aynı olacaktır. Aşağıdaki yöntem daha uygun buluyorum:?

public Bitmap takeScreenshot() { 
    View rootView = findViewById(android.R.id.content).getRootView(); 
    Bitmap bitmap = Bitmap.createBitmap(rootView.getWidth(), rootView.getHeight(), Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(bitmap); 
    rootView.draw(canvas); 
    return bitmap; 
}