这里有新鲜出炉的精品教程,程序狗速度看过来!
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
这篇文章主要介绍了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>
来源: http://www.phperz.com/article/17/1003/347274.html