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

Калькулятор (не могу разобраться, как добавить вычисление sin и cos) - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Получить цвет пикселя на экране по координатам на delphi http://www.cyberforum.ru/android-dev/thread1275894.html
Нужно быстро (несколько раз в секунду) получить цвет пикселя экрана в другом приложении. adb shell screencap > screen.png и adb pull /dev/graphics/fb0 делают скриншот всего экрана и преобразовывают его в png, это слишком долго. Root есть. Спасибо.
Программирование Android Ubuntu JAVA_HOME Только установил Ubuntu и Android Studio. При компилировании вылазит ошибка Error:Execution failed for task ':app:compileDebugJava'. > Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable to point to the according directory. При вводе команды javac -version показывает версию 1.8.0_20. Я так понял что нужно... http://www.cyberforum.ru/android-dev/thread1275857.html
Программирование Android Fly IQ4410 Quad
Здравствуйте, Как можно прошит телефон Fly IQ4410 Quad? После блокировки, через кнопки я сам делал рестарт, несколько раз. Дело в том, что камера барахлит. Думаю через компьютер, делать прошивка будет работать нормально. Поэтому от Вас прошу как можно прошит?
Программирование Android Дизайн приложения
Приветствую форумчане! Интересует меня такой вопрос: Кто на чем и как рисует интерфейс ? :)
Программирование Android Вывод принятого сообщения (клиент-сервер) http://www.cyberforum.ru/android-dev/thread1275747.html
Всем привет ! Делаю клиента. (для сервера) Проблема в том, что принятые сообщения не отображаются, хотя они приходят (в дебагере их видно). package com.client.client import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream;
Программирование Android Как создать репозиторий на GitHub заново? Здравствуйте. Я создал репозиторий для *своего проекта на GitHub. Потом я удалил репозиторий с GitHub. Когда я пытаюсь создать репозиторий заново ("VCS->Import into Version Control->Share Project on GitHub), Intellij IDEA выдает мне "Project is already on GitHub" и не создает репозиторий. Что мне делать? подробнее

Показать сообщение отдельно
Бауыржан
-18 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 160

Калькулятор (не могу разобраться, как добавить вычисление sin и cos) - Программирование Android

15.10.2014, 09:02. Просмотров 658. Ответов 0
Метки (Все метки)

Здрасьте! помогите разобраться не могу написать на этот калькулятор sin cos. Помогите написать калкулятор который вычисляет синус и косинус только одного любого числа
Написал код, там калькулятор выполняет действия + - * / надо ещё добавить функцию синуса и косинуса
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
Создадим проект:
 
Project name: P0191_SimpleCalculator
Build Target: Android 2.3.3
Application name: SimpleCalculator
Package name: ru.startandroid.develop.simplecalculator
Create Activity: MainActivity
 
 
 
Откроем main.xml и нарисуем экран:
 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:id="@+id/linearLayout1" 
android:layout_marginLeft="10pt" 
android:layout_marginRight="10pt" 
android:layout_marginTop="3pt"> 
<EditText 
android:layout_weight="1" 
android:layout_height="wrap_content" 
android:layout_marginRight="5pt" 
android:id="@+id/etNum1" 
android:layout_width="match_parent" 
android:inputType="numberDecimal"> 
</EditText> 
<EditText 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:layout_marginLeft="5pt" 
android:id="@+id/etNum2" 
android:layout_width="match_parent" 
android:inputType="numberDecimal"> 
</EditText> 
</LinearLayout> 
<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:id="@+id/linearLayout2" 
android:layout_marginTop="3pt" 
android:layout_marginLeft="5pt" 
android:layout_marginRight="5pt"> 
<Button 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:layout_weight="1" 
android:text="+" 
android:textSize="8pt" 
android:id="@+id/btnAdd"> 
</Button> 
<Button 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:layout_weight="1" 
android:text="-" 
android:textSize="8pt" 
android:id="@+id/btnSub"> 
</Button> 
<Button 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:layout_weight="1" 
android:text="*" 
android:textSize="8pt" 
android:id="@+id/btnMult"> 
</Button> 
<Button 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:layout_weight="1" 
android:text="/" 
android:textSize="8pt" 
android:id="@+id/btnDiv"> 
</Button> 
</LinearLayout> 
<TextView 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:layout_marginLeft="5pt" 
android:layout_marginRight="5pt" 
android:textSize="12pt" 
android:layout_marginTop="3pt" 
android:id="@+id/tvResult" 
android:gravity="center_horizontal"> 
</TextView> 
</LinearLayout>
 
 
 
Тут есть два поля ввода, 4 кнопки и текстовое поле для вывода. Обратите внимание на атрибут inputType для EditText. Он задает тип содержимого. Я указал numberDecimal – т.е. в поле получится ввести только цифры и запятую, буквы он не пропустит. Это удобно, не надо самому кодить различные проверки.
 
Для TextView указан атрибут gravity. Он указывает, как будет расположен текст в TextView. Не путайте с layout_gravity, который отвечает за размещение TextView в ViewGroup.
 
Теперь нам надо читать содержимое полей, определять какую кнопку нажали и выводить нужный результат. Открываем MainActivity.java и пишем код
 
public class MainActivity extends Activity implements OnClickListener {
 
  EditText etNum1;
  EditText etNum2;
 
  Button btnAdd;
  Button btnSub;
  Button btnMult;
  Button btnDiv;
 
  TextView tvResult;
 
  String oper = "";
 
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
 
    // находим элементы
    etNum1 = (EditText) findViewById(R.id.etNum1);
    etNum2 = (EditText) findViewById(R.id.etNum2);
 
    btnAdd = (Button) findViewById(R.id.btnAdd);
    btnSub = (Button) findViewById(R.id.btnSub);
    btnMult = (Button) findViewById(R.id.btnMult);
    btnDiv = (Button) findViewById(R.id.btnDiv);
 
    tvResult = (TextView) findViewById(R.id.tvResult);
 
    // прописываем обработчик
    btnAdd.setOnClickListener(this);
    btnSub.setOnClickListener(this);
    btnMult.setOnClickListener(this);
    btnDiv.setOnClickListener(this);
 
  }
 
  @Override
  public void onClick(View v) {
    // TODO Auto-generated method stub
    float num1 = 0;
    float num2 = 0;
    float result = 0;
 
    // Проверяем поля на пустоту
    if (TextUtils.isEmpty(etNum1.getText().toString())
        || TextUtils.isEmpty(etNum2.getText().toString())) {
      return;
    }
 
    // читаем EditText и заполняем переменные числами
    num1 = Float.parseFloat(etNum1.getText().toString());
    num2 = Float.parseFloat(etNum2.getText().toString());
 
    // определяем нажатую кнопку и выполняем соответствующую операцию
    // в oper пишем операцию, потом будем использовать в выводе
    switch (v.getId()) {
    case R.id.btnAdd:
      oper = "+";
      result = num1 + num2;
      break;
    case R.id.btnSub:
      oper = "-";
      result = num1 - num2;
      break;
    case R.id.btnMult:
      oper = "*";
      result = num1 * num2;
      break;
    case R.id.btnDiv:
      oper = "/";
      result = num1 / num2;
      break;
    default:
      break;
    }
 
    // формируем строку вывода
    tvResult.setText(num1 + " " + oper + " " + num2 + " = " + result);
  }
}
Думаю, все понятно по каментам. Читаем значения, определяем кнопку, выполняем операцию и выводим в текстовое поле. Обработчиком нажатий на кнопки выступает Activity.
 
Все сохраним и запустим.
 
 
 
 
 
Давайте для большего функционала сделаем меню с пунктами очистки полей и выхода из приложения. Пункты будут называться Reset и Quit.
 
Добавим две константы – это будут ID пунктов меню.
 
public class MainActivity extends Activity implements OnClickListener {
 
final int MENU_RESET_ID = 1;
final int MENU_QUIT_ID = 2;
 
EditText etNum1;
(добавляете только подчеркнутый код)
 
 
 
И напишем код создания и обработки меню:
 
// создание меню
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0, MENU_RESET_ID, 0, "Reset");
menu.add(0, MENU_QUIT_ID, 0, "Quit");
return super.onCreateOptionsMenu(menu);
}
 
// обработка нажатий на пункты меню
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case MENU_RESET_ID:
// очищаем поля
etNum1.setText("");
etNum2.setText("");
tvResult.setText("");
break;
case MENU_QUIT_ID:
// выход из приложения
finish();
break;
}
return super.onOptionsItemSelected(item);
}
 
 
Сохраним все, запустим. Появилось два пункта меню:
Reset – очищает все поля
Quit – закрывает приложение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru