Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 5.00
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 424
#1

как программно сделать скриншот экрана - Программирование Android

29.01.2014, 00:07. Просмотров 3117. Ответов 4
Метки нет (Все метки)

как програмно сделать скриншот экрана?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2014, 00:07     как программно сделать скриншот экрана
Посмотрите здесь:
Как сделать скриншот экрана без прав Root-а? Android
Сделать скриншот экрана в Genymotion Android
Android Скриншот экрана
Android Как программно узнать ppi экрана?
Android Как сделать такую игру(скриншот+)?
Android Как программно взять диагональ экрана андроид устройства?
Android Как можно сделать маштабируемость экрана
Размеры экрана программно Android
Android Программно определить разрешение экрана
Создание экрана программно и через xml файл Android
Android Как сделать так, чтобы мобильное приложение автоматически подстраивалось под размер экрана?
Как программно удалить кнопку которую программно создал но только если она уже существует Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Водяной Змей
Заблокирован
29.01.2014, 01:20     как программно сделать скриншот экрана #2
Легко. Вот, например.
http://amitandroid.blogspot.in/2013/...ough-code.html

Привыкайте пользоваться поиском.
Я ввёл в гугле "android java screenshot" и всё нашлось.
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 424
29.01.2014, 11:29  [ТС]     как программно сделать скриншот экрана #3
Цитата Сообщение от Водяной Змей Посмотреть сообщение
Легко. Вот, например.
http://amitandroid.blogspot.in/2013/...ough-code.html

Привыкайте пользоваться поиском.
Я ввёл в гугле "android java screenshot" и всё нашлось.
Это не будет работать эсли окно будет рисоваться динамически как в игре. Этот скриншот будет работать если View будет формироваться через xml-layout.
Водяной Змей
Заблокирован
29.01.2014, 11:40     как программно сделать скриншот экрана #4
Такое вообще бывает?
Переделайте и всё будет работать. А копипаста чужого кода вообще без попыток сделать на его основе что-то своё - не самый лучший метод обучения программированию.
(Я не говорю, что копипастить нельзя вообще. Это можно и нужно, но не опускаться же до уровня кулхацкеров.)

Если Вы знаете, что такое xml-layout, то и с этим кодом при желании разберётесь.
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 424
29.01.2014, 12:46  [ТС]     как программно сделать скриншот экрана #5
Цитата Сообщение от Водяной Змей Посмотреть сообщение
Такое вообще бывает?
Переделайте и всё будет работать. А копипаста чужого кода вообще без попыток сделать на его основе что-то своё - не самый лучший метод обучения программированию.
(Я не говорю, что копипастить нельзя вообще. Это можно и нужно, но не опускаться же до уровня кулхацкеров.)

Если Вы знаете, что такое xml-layout, то и с этим кодом при желании разберётесь.
Хорошо.)) Тогда поробуйте это
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // если хотим, чтобы приложение было полноэкранным
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
 
        // и без заголовка
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        
        setContentView(new GameView(this));
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
public class GameView extends SurfaceView {
     /**Объект класса GameLoopThread*/
    private GameThread mThread;
    Bitmap fon;
    public Bitmap bitmap= Bitmap.createBitmap(720, 1280, Bitmap.Config.ARGB_8888);
 public class GameThread extends Thread
    {
        /**Объект класса*/
        private GameView view;   
        
        /**Конструктор класса*/
        public GameThread(GameView view) 
        {
              this.view = view;
        }
 
        /**Задание состояния потока*/
        public void setRunning(boolean run) 
        {
              running = run;
        }
 
        /** Действия, выполняемые в потоке */
      
        public void run()
        {
            while (running)
            {
                Canvas canvas = null;
                
                try
                {
                    // подготовка Canvas-а
             
                    canvas = view.getHolder().lockCanvas();
                    synchronized (view.getHolder())
                    {
                        // собственно рисование
                        
                        onDraw(canvas);
                    }
                }
                catch (Exception e) { }
                finally
                {
                    if (canvas != null)
                    {
                        view.getHolder().unlockCanvasAndPost(canvas);
                    }
                }
            }
        }
 public GameView(Context context) 
    {
        
        super(context);
     
        fon=BitmapFactory.decodeResource(getResources(), R.drawable.fon1);
        
      
      
      
        this.setDrawingCacheEnabled(true);
       
        
        mThread = new GameThread(this);
        
        
        
        /*Рисуем все наши объекты и все все все*/
        getHolder().addCallback(new SurfaceHolder.Callback() 
        {
             /*** Уничтожение области рисования */
               public void surfaceDestroyed(SurfaceHolder holder) 
               {
                   boolean retry = true;
                    mThread.setRunning(false);
                    while (retry)
                    {
                        try
                        {
                            // ожидание завершение потока
                            mThread.join();
                            retry = false;
                        }
                        catch (InterruptedException e) { }
                    }
               }
 
               /** Создание области рисования */
               public void surfaceCreated(SurfaceHolder holder) 
               {
                   mThread.setRunning(true);
                   mThread.start();
               }
 
               /** Изменение области рисования */
               public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) 
               {
               }
        });
    }
    
     /**Функция рисующая  фон*/
    protected void onDraw(Canvas canvas) { 
        
        canvas.setBitmap(fon);
        
       // СДЕЛАЙ ТУТ СКРИНШОТ
       
       
   
     
       
   
        
          
    }
    
    public boolean onTouchEvent(MotionEvent e) 
    {
        
    
    
        
        return true;
    }
    
 
}
}
Yandex
Объявления
29.01.2014, 12:46     как программно сделать скриншот экрана
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru