Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/22: Рейтинг темы: голосов - 22, средняя оценка - 4.73
ASDFD12
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 544
#1

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

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

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

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

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

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

Как программно узнать ppi экрана?
Как программно узнать ppi экрана?

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

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

Привыкайте пользоваться поиском.
Я ввёл в гугле "android java screenshot" и всё нашлось.
0
ASDFD12
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 544
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
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 544
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
29.01.2014, 12:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2014, 12:46

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

Как сделать блокировку экрана
Как сделать экран блокировки с паролем при разблокировки телефона?

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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