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

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

Войти
Регистрация
Восстановить пароль
 
Yushka
4 / 4 / 1
Регистрация: 24.07.2013
Сообщений: 80
#1

Как считает? - Программирование Android

25.07.2013, 16:27. Просмотров 531. Ответов 12
Метки нет (Все метки)

Собственно, вызываю метод в onCreate:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
yu_catch(261, 286, w, h);   //w - ширина используемого экрана; h - высота используемого экрана
 
само описание метода:
yu_catch(int x, int y,int w, int h){                       //Метод, реализующий подсчёт позиций для объектов
                   int xn=(w/800)*x;                                         //позиция
                   int yn=(h/480)*y;
 
                   int vx=w/(800/92);                                        //масштабирование
                   int vy= h/(480/94);
 
                   final String v=String.format("%s", xn);
                   Toast.makeText(this, v, Toast.LENGTH_LONG).show();
 
       RelativeLayout ll= (RelativeLayout) findViewById(R.id.yu_lay);
       ImageView iv=new ImageView(this);
       iv.setImageResource(R.drawable.sphere);
 
       RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams(vx, vy);
       params.leftMargin=xn;
       params.topMargin=yn;
       ll.addView(iv, params);
   }
суть проблемы: не происходит пересчёта позиций в int xn=(w/800)*x; int yn=(h/480)*y; (при этом величину экрана он принимает верно и все использующиеся в формуле переменные тоже), то есть, каким бы ни был экран, xn и yn не меняются. Почему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2013, 16:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как считает? (Программирование Android):

Продвижение приложения и как Google play считает уникальные установки? - Программирование Android
Ребята, закончил я свой мини проект, и как предвиделось, мир оказался не готов скачивать мое детище в миллионных масштабах...Точнее даже не...

Cos считает неправильно - Программирование Android
package com.example.andreybib.fizikamehanica; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import...

Math.sin(d) не верно считает - Программирование Android
Здравствуйте. Есть класс математических методов - Math. Если я не ошибаюсь синус 30 =0,5, но метод Math.sin(30) выдает значение...

Double val = 83.1*3; val == 249.29999999999998; Android так считает - Программирование Android
Double val = 83.1*3; Log.i("M","val = "+val); M: val = 249.29999999999998 В чем фишка? Или это я в школе на математике...

Запрос считает итоговую сумму по договору выполненных разных услуг, но повторяющиеся не считает - Delphi БД
Есть запрос procedure TForm7.Button2Click(Sender: TObject); var i:integer; begin ...

Mathcad слишком долго считает. Считает ли? - MathCAD
Уважаемые форумчане, есть вопрос: Задал считать символьное дифференцирование очень сложной функции. Mathcad считает уже несколько дней...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,873
25.07.2013, 16:31 #2
по своему опыту скажу, что лучше верстать из xml, потому что ,опять же по моему опыту, изменять положение и тд объектов из кода не очнеь то выходит
Yushka
4 / 4 / 1
Регистрация: 24.07.2013
Сообщений: 80
25.07.2013, 16:32  [ТС] #3
в хмл не знаю как использовать формулу для подсчёта позиции и запихивать именно в полученные позиции. Буду счастлива, если подскажете, как это сделать=)
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,873
25.07.2013, 16:35 #4
нарисуйте в паинте что вам надо, мб смогу помочь
Yushka
4 / 4 / 1
Регистрация: 24.07.2013
Сообщений: 80
25.07.2013, 16:54  [ТС] #5
А да..у меня бэкграунд задан)в нём есть белое пятно))которое, естественно, на разных экранах в разных местах оказывается. Так вот мне нужно засунуть именно в это белое пятно картинку, которая как раз его заполнять должна. Поэтому для разных экранов считаю его чёткую позицию по формуле.
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,873
25.07.2013, 16:58 #6
используйте 9path и/или размерность dp
Yushka
4 / 4 / 1
Регистрация: 24.07.2013
Сообщений: 80
25.07.2013, 17:01  [ТС] #7
Так эту размерность как-то считать нужно при всём при этом. Просто так без задания чёткой позиции уже пыталась в xml засунуть. Но там вообще бесперспективняк=( Поэтому пришлось программно. Но проблема остаётся в том, что как будто он не считает вообще значения формул. А почему - неизвестно. Если бы всё верно считал, то и позиционировал бы верно...
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
25.07.2013, 17:32 #8
А использовать Gravity не подойдет? + margin ?
Yushka
4 / 4 / 1
Регистрация: 24.07.2013
Сообщений: 80
25.07.2013, 17:33  [ТС] #9
Неа..всё это не прилепляет к фону и чёткому месту на экране=(
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
25.07.2013, 17:36 #10
Цитата Сообщение от Yushka Посмотреть сообщение
Toast.makeText(this, v, Toast.LENGTH_LONG).show();
Проставьте это после каждой строчки и увидите, где не верно считает
Yushka
4 / 4 / 1
Регистрация: 24.07.2013
Сообщений: 80
25.07.2013, 18:15  [ТС] #11
Я вижу, где неверно считает (формулы неверно считает при том, что все значения верно передаются, проверяла таким же способом - выводом), я не могу понять, почему. Может у него специфические там особенности какие-то этому препятствуют - фиг знает.
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,873
25.07.2013, 20:32 #12
мб вы как то не верно ширину и высоту экрана получаете?
Yushka
4 / 4 / 1
Регистрация: 24.07.2013
Сообщений: 80
26.07.2013, 11:35  [ТС] #13
Все величины передаются верно, просто как будто игнорирует код с формулой и всегда втыкает в позиции,передаваемые в метод как х и у.То есть xn в данном случае оказывается каким-то чудом равен 261 (ну то есть даже там, где должо получиться другим, то есть на экране с другим разрешением), но при этом w и h именно такие, какого разрешения экран. Ну и икс с игреком ясен пень константами передаются. Почему не считает нормально xn и yn просто не понимаю, мистика какая-то...
Проверяю на разных девайсах, с получением разрешения экрана все точно нормально.

Добавлено через 11 часов 41 минуту
Вопрос снят. Проблема была в int. Всё просто. Всем спасибо=)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2013, 11:35
Привет! Вот еще темы с ответами:

Как sizeof считает размер? - C++
Есть код программы. Скажите как определить размерность структуры? Дело в том что выдает 4 байта, но хотелось бы узнать как это делает...

Как Sleep() считает время ? - C++ Builder
Добрый вечер :) Из следующего кода возник один вопрос: void __fastcall TForm1::Button1Click(TObject *Sender) { ...

как зациклить switch, чтобы после того как я допустим ввожу f и он считает циклом for, потом снова просил введите символ - C++
#include <iostream> #include <iomanip> #include <math.h> using namespace std; int main() { float x=0.2,y,s=0; int...

Кто как считает итоги в DBGrid? - Delphi БД
как подсчитать, к примеру сумму данных в колонке DBGrid? или среднее? есть много компонентов с агрегатными функциями в гриде, но без...


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

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

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