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

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

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

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

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

как програмно сделать скриншот экрана?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2014, 00:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос как программно сделать скриншот экрана (Программирование Android):

Как сделать скриншот экрана без прав Root-а? - Программирование Android
как сделать скриншот всего экрана без использования(getRootView()) без рут прав ??

Сделать скриншот экрана в Genymotion - Программирование Android
Подскажите как можно сделать скриншот экрана с помощью эмулятора Genymotion?

Скриншот экрана - Программирование Android
Здраствуйте, мне нужно зделать програмно скриншот екрана... я нашол...

Как программно узнать ppi экрана? - Программирование Android
Как программно узнать ppi экрана?

Как сделать такую игру(скриншот+)? - Программирование Android
В этой игре физика "вид сверху". Нужно двигать блоки(они упираются друг в друга), горизонтальные двигаются только вправо влево,...

Как программно взять диагональ экрана андроид устройства? - Программирование Android
Помогите, пожалуйста, определить к какому drawable (mdpi, hdpi, xdpi...) относится используемый аппарат, естественно кодом.

4
Водяной Змей
Заблокирован
29.01.2014, 01:20 #2
Легко. Вот, например.
http://amitandroid.blogspot.in/2013/...ough-code.html

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

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

Если Вы знаете, что такое xml-layout, то и с этим кодом при желании разберётесь.
0
ASDFD12
40 / 40 / 6
Регистрация: 15.09.2012
Сообщений: 453
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;
    }
    
 
}
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2014, 12:46
Привет! Вот еще темы с ответами:

Как можно сделать маштабируемость экрана - Программирование Android
Есть ли возможность уменьшать, увеличивать представление приложения так же как мы делаем это в браузере

Размеры экрана программно - Программирование Android
DisplayMetrics displaymetrics = getResources().getDisplayMetrics(); Ругается на getResources(). узнаю размеры в классе который не...

Программно определить разрешение экрана - Программирование Android
Нужно узнать разрешение экрана полностью. Когда я определяю у меня выводит, что-то вроде 1216 вместо 1280, не считает какой-то тулбар или...

Создание экрана программно и через xml файл - Программирование Android
Когда задаю всё программно, все элементы как надо располагаются на экране, ничего не сдвигается, всё как надо. Пытаюсь точно так же задать...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
29.01.2014, 12:46
Ответ Создать тему
Опции темы

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