la cosa es así: tengo una clase del tipo view que me dibuja el dial de un reloj [1]. Hoy por hoy logré que muestre el dial mediante este comando
Bueno mi idea es que esa clase sea un custom control y que una vez que luego de yo declarlo en el layout, mediante código la pueda manipular en la actividad.
Si alguno se le ocurre como hacerlo, se lo agradeceré.
package laponderosa.circulito;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.Log;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
public final class SampleView extends View {
WindowManager wm;
Display display;
Paint p = new Paint();
int x, y, radio, pasos;
// CONSTRUCTOR
public SampleView(Context context) {
super(context);
// setFocusable(true);
}
// CONSTRUCTOR
public SampleView(Context context, int xC, int yC, int rC, int pC) {
super(context);
// setFocusable(true);
x = xC;
y = yC;
radio = rC;
pasos = pC;
}
@SuppressWarnings("deprecation")
@Override
protected void onDraw(Canvas canvas) {
float xi, yi, xf, yf;
double b, angulo;
angulo = 360 / pasos;
// canvas.drawColor(Color.CYAN);
// smooths
p.setAntiAlias(true);
p.setColor(Color.RED);
p.setStyle(Paint.Style.STROKE);
p.setStrokeWidth(4.5f);
// opacity
p.setAlpha(0x80);
canvas.rotate(180, x, y);
canvas.drawCircle(x, y, radio, p);
for (int i = 0; i < pasos; i++) {
b = Math.toRadians(i * angulo);
xi = (float) (Math.sin(b) * radio) + x;
yi = (float) (Math.cos(b) * radio) + y;
xf = (float) (Math.sin(b) * (radio - 10)) + x;
yf = (float) (Math.cos(b) * (radio - 10)) + y;
canvas.drawLine(xi, yi, xf, yf, p);
Log.i("ANGULO", String.valueOf(angulo * i));
}
// canvas.drawLine((int) display.getWidth()/2, (int)
// display.getHeight()/4, ((int) display.getHeight()/4)+78, ((int)
// display.getWidth()/4)+79, p);
}
}
--
Braulio
0 comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.