buunrotate.java
package buunrotate.test;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.view.animation.RotateAnimation;
public class buunrotate extends Activity{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ImageView pin = (ImageView) findViewById(R.id.buun);
Button button_kmh = (Button) findViewById(R.id.button_do);
button_kmh.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditText textnum = (EditText) findViewById(R.id.text_num);
float num = Integer.parseInt(textnum.getText().toString());
num = (float) (-45 + (num * (225.0/150.0)));
if(num > 180){
num = 190;
}
RotateAnimation rotate = new RotateAnimation(-45, num, 150, 0);
rotate.setDuration(1000);
pin.startAnimation(rotate);
}
});
}
}
アニメーションをやってみた
今までは2つの画面でやってた訳ですが、どうせなら一緒に出来た方が良いよねーって事で
一つの画面で文字入力、画像表示、アニメーションをやってみた

layoutが割と重要で、丸の部分をバックグラウンドに設定
その上にブーンの絵を乗せる事で一つの画面で実現出来た
あとアニメーションは
RotateAnimation rotate = new RotateAnimation(-45, num, 150, 0);
rotate.setDuration(1000);
pin.startAnimation(rotate);
これでばっちり
これでまぁ、出来るっちゃ出来るんだけど、どうせならもっと自由に画像を配置したい所。
どうやれば良いんですかねー
layout.xml
続きを読むbuun.java
package buunview.test;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.View;
public class buun extends Activity{
private static float num;
private static int rotateX = 155;
private static int rotateY = 160;
private static Rect rect1;
private static Rect rect2;
@Override
public void onCreate(Bundle icicle){
super.onCreate(icicle);
setContentView(new GraphicsView(this));
Bundle extras = getIntent().getExtras();
if(extras != null){
num = extras.getInt("Num");
}
}
static public class GraphicsView extends View{
private BitmapDrawable maru;
private BitmapDrawable buun;
public GraphicsView(Context context) {
super(context);
this.maru = (BitmapDrawable) context.getResources().getDrawable(R.drawable.maru);
rect1 = new Rect(0,5,this.maru.getIntrinsicWidth(), this.maru.getIntrinsicHeight());
this.maru.setBounds(rect1);
this.buun = (BitmapDrawable) context.getResources().getDrawable(R.drawable.buun);
rect2 = new Rect(2,100,this.buun.getIntrinsicWidth(), 200);
this.buun.setBounds(rect2);
}
@Override
public void draw(Canvas canvas){
this.maru.draw(canvas);
canvas.save();
canvas.rotate(num, rotateX, rotateY);
this.buun.draw(canvas);
canvas.restore();
}
}
}
main.java
package buunview.test;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class buunview extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button_do = (Button) findViewById(R.id.button_do);
button_kmh.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(buunview.this, buun.class);
EditText textnum = (EditText) findViewById(R.id.text_num);
intent.putExtra("Num", Integer.parseInt(textnum.getText().toString()));
startActivityForResult(intent, 0);
}
});
}
}
arcview.java
package arc.test;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.View;
public class arcview extends Activity{
public static Paint cPaint;
public static RectF rect;
public static Path arc;
public static Paint lPaint;
public static float linex = 10;
public static float liney = 200;
public static double rad;
public static Paint dPaint;
private static float num;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(new GraphicsView(this));
Bundle extras = getIntent().getExtras();
if(extras != null){
num = extras.getInt("Num");
}
}
static public class GraphicsView extends View{
public GraphicsView(Context context){
super(context);
}
protected void onDraw(Canvas canvas){
cPaint = new Paint();
cPaint.setColor(Color.WHITE);
dPaint = new Paint();
dPaint.setColor(Color.BLACK);
rect = new RectF(25, 100, 225, 300);
arc = new Path();
lPaint = new Paint();
lPaint.setColor(Color.RED);
arc.arcTo(rect, 180, num);
canvas.drawPath(arc, cPaint);
canvas.drawLine(linex, liney, 125, 190, lPaint);
}
}
}


