public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback{
private Context mainActivity;
private Paint paint;
public MySurfaceView(Context context) {
super(context);
mainActivity=context;
//getHolder().setFixedSize(300,300);
getHolder().addCallback(this);
paint=new Paint();
paint.setAntiAlias(true);
}
@Override
protected void onDraw(Canvas canvas) {
Bitmap bitmap= BitmapFactory.decodeResource(mainActivity.getResources(), R.drawable.score_128x128);
canvas.drawBitmap(bitmap, 20, 130, paint);
Matrix m1=new Matrix();
m1.setTranslate(360, 80);
Matrix m2=new Matrix();
m2.setRotate(45);
Matrix mix=new Matrix();
mix.setConcat(m1,m2);
paint.setAlpha(128);
canvas.drawBitmap(bitmap,100,50,paint);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
Toast.makeText(mainActivity,"exception",Toast.LENGTH_SHORT);
Canvas canvas=holder.lockCanvas();
try {
synchronized (holder){
onDraw(canvas);
}
}catch (Exception e){
Toast.makeText(mainActivity,"exception",Toast.LENGTH_SHORT);
}finally {
holder.unlockCanvasAndPost(canvas);
}
}
Activity里new一个MySurfaceView
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MySurfaceView mySurfaceView=new MySurfaceView(MainActivity.this);
setContentView(R.layout.activity_main);
}
MySurfaceView mySurfaceView=new MySurfaceView(MainActivity.this);//这个view new了后没用
setContentView(R.layout.activity_main);
不知道你这个
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(500, 400);
params.gravity = Gravity.CENTER;
addContentView(mySurfaceView, params);