android:layout_centerInParent="true">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
>
<ImageView android:id="@+id/img_background" android:layout_width="300dp" android:layout_height="300dp" android:layout_centerInParent="true" android:background="@drawable/backgroundcenter"/>
<com.examclass.circle.RotatView
android:id="@+id/myRotatView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
></com.examclass.circle.RotatView>
</RelativeLayout>
</RelativeLayout>
写在布局里,尽量要使用dp,相对布局,这时候我的view还没有适配成功,模拟器和真机还是有不同的,后来就在想为什么呢。。看了下代码:
@Override
protected void onDraw(Canvas canvas) {
Matrix matrix = new Matrix();
// 设置转轴位置
matrix.setTranslate((float)width/2, (float)height/2);
// 开始转
matrix.preRotate(deta_degree);
// 转轴还原
matrix.preTranslate(-(float)width/2, -(float)height/2);
// 将位置送到view的中心
matrix.postTranslate((float)(maxwidth - width-40), (float)(maxwidth - height-35));//就是这里了,可以想自己来适配,因为view是以左上脚为圆心的,而parent又是中心,、、、、、所以
xml 显示view的时候在整个view的右下角,故而自己试下直接用固定的数字来适配,结果达到想要的效果了,这个跟取屏幕像素做比例的原理是一样的
canvas.drawBitmap(rotatBitmap, matrix,paint);
super.onDraw(canvas);
}