软件编程
位置:首页>> 软件编程>> Android编程>> Android 实现切圆图作为头像使用实例

Android 实现切圆图作为头像使用实例

作者:lqh  发布时间:2023-04-29 04:08:08 

标签:Android,切圆图

Android 切圆图

效果图如下:

Android 实现切圆图作为头像使用实例

MyView 类


public class MyView extends View {

Bitmap bmp;

Paint paint = new Paint();

public MyView(Context context) {
   super(context);
 }

public MyView(Context context, AttributeSet attrs) {
   super(context, attrs);
   bmp = BitmapFactory.decodeResource(getResources(), R.mipmap.c);
   src = new RectF(bmp.getWidth() / 2 - 50, bmp.getHeight() / 2 - 50, bmp.getWidth() / 2 + 50, bmp.getHeight() / 2 + 50);
   dst = new Rect(200, 200, 400, 400);

paint.setAntiAlias(true);
   paint.setDither(true);
   Shader shaer = new BitmapShader(bmp, Shader.TileMode.MIRROR, Shader.TileMode.REPEAT);
   paint.setShader(shaer);
 }

private RectF src = null;
 private Rect dst = null;

@Override
 protected void onDraw(Canvas canvas) {
   super.onDraw(canvas);
   //绘制Bitmap

Matrix m = new Matrix();

//每次set都会重置矩形
   m.setRotate(90, bmp.getWidth() / 2, bmp.getHeight() / 2);

m.postTranslate(100, 100);

m.preScale(0.5f, 0.5f, bmp.getWidth() / 2, bmp.getHeight() / 2);

//错切
   m.postSkew(0.3f, 0.3f);

// canvas.drawBitmap(bmp, m, null);

// canvas.drawBitmap(bmp, src, dst, null);

//拿view的高宽
   canvas.drawArc(src, 100, 270, true, paint);

}
}

MainActivity 类


public class MainActivity extends AppCompatActivity {

@Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
 }
}

xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 tools:context="com.example.administrator.lesson12_drawbitmap.MainActivity">

<com.example.administrator.lesson12_drawbitmap.MyView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content" />

</LinearLayout>

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com