콤파스인데요..

 

크기가 딱 이미지 크기만큼 나오게 하고픈데.. xml로 넣으면(wrap_content) 계속 뷰 자체는 화면 전체를 차지하고 이미지만 원래 크기대로 나옵니다..

(사실 이미지도 원래 크기가 아닌 원래크기보다 약간 크게 나옵니다;; 뭔지 ;;)

뷰 자체가 딱 이미지 크기대로 나오게 하려는데 되체 어딜 건들여야 되는지 ㅠㅠ

 

전체 코드 입니다..

생성자에 아래 코드를 this.setLayoutParams(new LayoutParams(300,300)); 이걸 넣으면 될줄 알았는데 안되네요..

 

 

public class CompassView extends View implements SensorEventListener {
 float azimuth;
 Bitmap compass;

 

 public CompassView(Context context, AttributeSet attr){
  super(context, attr);
   compass = BitmapFactory.decodeResource(getResources(), R.drawable.compass);
 }
 
 public void onSizeChanged(int w, int h, int oldw, int oldh) {
  super.onSizeChanged(w, h, oldw, oldh);
 }

 

 public void onAccuracyChanged(Sensor sensor, int accuracy) { }

 

 public void onSensorChanged(SensorEvent event) {
  float[] v = event.values;
  switch (event.sensor.getType()) {
  case Sensor.TYPE_ORIENTATION:
   if (azimuth != v[0]) {
    azimuth = v[0];
    invalidate();
   }
   break;
  }
 }

 

 public void onDraw(Canvas canvas) {
  Paint Pnt = new Paint();
  Pnt.setAntiAlias(true);
  
  // 나침반 표시
  Matrix m = new Matrix();
  m.postRotate(-azimuth, compass.getWidth()/2, compass.getHeight()/2);
  canvas.drawBitmap(compass, m, Pnt);
 }
}