画像を表示してみる。しかも重ねて!!

割と画像重ねる方法が探してもなかった気がするんでメモ
今回も角度を指定して、その分画像を回転させてみた
使用した画像はこれ
背景は赤い丸
実装されてない逆回転ボタンもセット

canvas使えば画像同士も重ねる事が出来るっぽい
正直良く分かってないです
画像を回転させるここが割と重要やった
canvas.save();
canvas.rotate(num, rotateX, rotateY);
this.buun.draw(canvas);
canvas.restore();


layout.xml

続きを読む

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);
}
});

}
}

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();

}

}

}