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

Окружность радиус которого является getEvent палец - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Передача файлов через NFC http://www.cyberforum.ru/android-dev/thread1024160.html
У меня нет познаний в Java и тем более в программировании под Android, но так уж вышло что мне нужно сделать приложение, которое передаёт файлы через NFC. Я прочитал соответствующие разделы на developer.android.com, попытался разобрать пример для 17 SDK, но так и не понял как сделать так чтобы приложение передавало файл. Поэтому прошу вашей помощи. Подскажите как правильно изменить код примера...
Android Custom view && attrs Добрый день, нужна ваша помощь. Есть кастомная вьюшка, public class MyCustomButton extends LinearLayout { ImageView mImageView; ImageView mImageDivider; TextView mTextView; public MyCustomButton(Context context) { http://www.cyberforum.ru/android-dev/thread1024109.html
GridView и сложная отрисовка Android
Вся сложность в том, что надо отрисовать как большие, так и маленькие прямоугольники. При этом, когда большие прямоугольники заканчиваются - должен как-бы происходить перенос на новую строку. Что я уже сделал: - сделал свой адаптер - передаю в него отсортированный массив - у грида поставил numColumns="auto_fit" Можно сделать это с помощью двух gridLayout, так уже и сделано, но возникла...
INSTALL_FAILED_OLDER_SDK Android
IntelliJ IDEA Создал новый проект. При попытке запуска на устройстве получаю сообщение INSTALL_FAILED_OLDER_SDK. Установил более старый SDK, но не помогло. После чего создал еще один новый проект и успешно запустил его. Сравниваю свойства этих двух проектов и не вижу разницы. В чем же дело?
Android Как во фрагменты "вставлять" выполнение класса http://www.cyberforum.ru/android-dev/thread1023492.html
Подскажите как во фрагменты вставить выполнение классов? Например MainActivity ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); actionBar.setDisplayShowTitleEnabled(false); Tab tab = actionBar
Android Парсинг XML на АНДРОИД Суть приложения - парсит XML файл с сервера ( извлекает значение тега <bid>). Выводит это значение в текстовое поле. В процесе отладки приложение установил что не выполняется участок кода отвечающий именно за парсинг. Компилятор ошыбок не показывает. В програмировании на андроид я новичек. Участок кода отвечающий за парсинг писал на java, компилировал через JRE на Windows, получил class файл. Все... подробнее

Показать сообщение отдельно
Муратов
1 / 1 / 0
Регистрация: 17.08.2012
Сообщений: 62
10.12.2013, 15:02  [ТС]     Окружность радиус которого является getEvent палец
получилось выложу код может кому нибудь пригодится, по нажатию по экрану появляется круг и в этом круге отрисовывается ещё один круг, идея была чтобы маленький круг не выходил за пределы большого круга, для этого нужно было уравнение окружности и высчитывание синуса угла и косинуса угла.
public class SingleTouchView extends View {



final int MIN_WIDTH = 75;
final int MIN_HEIGHT = 75;
final int DEFAULT_COLOR = Color.WHITE;
int _color;
final int STROKE_WIDTH = 2;

private Paint paint = new Paint();
public float x, y, x1, y1, k, b, Rad, d, EF, A, B, angle, angle1, number = 25, x2, y2, x3, y3, A1, B1, R1, cosalfa, RcosAlfa;
private boolean touching = false;
public boolean ViewFinal = false;
public boolean Final = false;
private float Radius = 100;
private float RadiusMin = 30;
public Drawable image;

public SingleTouchView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
init();
}

public SingleTouchView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
init();
}

public SingleTouchView(Context context) {
super(context);
// TODO Auto-generated constructor stub
init();
}

private void init() {
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(2);
paint.setColor(Color.DKGRAY);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec),
MeasureSpec.getSize(heightMeasureSpec));
}

@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);

if (touching) {
//paint.setStrokeWidth(STROKE_WIDTH);
//paint.setColor(_color);
//paint.setStyle(Paint.Style.FILL);
//paint.setMaskFilter(new BlurMaskFilter(5, Blur.OUTER));

Bitmap myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.unl2);
//Bitmap myBitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.unl1);
Bitmap myBitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.unl1);
canvas.drawBitmap(myBitmap, x3 - 25, y3 - 35, paint);

if(ViewFinal){
canvas.drawBitmap(myBitmap1, x2 - 25, y2 - 35, paint);
} else{
canvas.drawBitmap(myBitmap, x2 - 25, y2 - 35, paint);
}

canvas.drawCircle(x, y, RadiusMin, paint);

canvas.drawCircle(x1, y1, Radius, paint);

//canvas.drawCircle(x2, y2, 30f, paint);

//canvas.drawCircle(x3, y3, 30f, paint);
/*canvas.save();
image.draw(canvas);
canvas.restore();*/

}
}

public void setColor(int color) {
_color = color;
}

@Override
public boolean onTouchEvent(MotionEvent motionEvent) {
// TODO Auto-generated method stub

switch (motionEvent.getAction()) {
case MotionEvent.ACTION_MOVE:
x = motionEvent.getX();
y = motionEvent.getY();
k = (y1-y)/(x1-x);
b = (x1*y-x*y1)/(x1-x);
Rad = (float) Math.sqrt(Math.pow((x1-x), 2) + Math.pow((y1 - y), 2));
d = Radius - RadiusMin;
EF = Radius + RadiusMin - d;

if((Math.pow((x1-x), 2) + Math.pow((y1-y), 2)) > Math.pow(Radius, 2)){
//x = k*x1+b;
//y = k*y1+b;

cosalfa = (float) ((float) (x-x1)/ Math.sqrt(Math.pow((y-y1), 2)+ Math.pow((x-x1), 2)));
R1 = (float) (Math.sqrt(Math.pow((y-y1), 2)+ Math.pow((x-x1), 2)));
RcosAlfa = Radius*cosalfa;
if(Rad*(1-cosalfa) > 0 && Rad*(1-cosalfa) < 15){
x = x1+Radius;
y = y1;
ViewFinal = true;
Final = true;

}
else if(Rad*(1-Math.abs(cosalfa)) > 0 && Rad*(1-Math.abs(cosalfa)) < 15){
x = x1-Radius;
y = y1;
} else {
x = Radius * cosalfa + x1;
y = Radius * (y-y1)/R1 + y1;
}





//y = (((y1-y)*(x1-x))/(x1-x)) + y;
//touching = false;
}
break;
case MotionEvent.ACTION_DOWN:
touching = true;
x = motionEvent.getX();
y = motionEvent.getY();
x1 = motionEvent.getX();
y1 = motionEvent.getY();
//for(int i = 0; i < number; i++){
angle = (float) ((float) 0 * (Math.PI*2));
angle1 = (float) ((float) (Math.PI*2) - Math.PI);
A = (float) ((float) Radius * Math.sin(angle));
B = (float) ((float) Radius * Math.cos(angle));
A1 = (float) ((float) Radius * Math.sin(angle1));
B1 = (float) ((float) Radius * Math.cos(angle1));
x2 = x + B;
y2 = y + A;
x3 = x + B1;
y3 = y + A1;

//}
break;
case MotionEvent.ACTION_UP:
touching = false;
ViewFinal = false;
Final = false;

default:
touching = false;
ViewFinal = false;
Final = false;
}
invalidate();
return true;
}

}
 
Текущее время: 06:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru