Android 图形:绘制渐变色奥运五环图形,游戏文字,验证码,Matrix旋转,缩放,倾斜,平移等

本文详细介绍了如何在Android应用中,利用Matrix进行图像的旋转、缩放、倾斜和旋转后平移操作,并展示了如何生成随机数字验证码。此外,还涉及自定义View和高级UI的相关内容,包括UI设计和面试技巧.

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

6.绘制一个随机数字组成的验证码

7.使用 Matrix 旋转 图像

8.使用 Matrix 缩放 图像

9.使用 Matrix 倾斜 图像

10.使用 Matrix 旋转后平移 图像

源码下载:

========

https://github.com/zhuanghongji/GraphicsSummaryZhj

效果图:

====

java代码:

=======

MainActivity:


public class MainActivity extends AppCompatActivity {

FrameLayout mFrameLayout;
private Button mBtn0, mBtn1, mBtn2, mBtn3;
private Button mBtn4, mBtn5, mBtn6, mBtn7;
private Button mBtn8, mBtn9, mBtn10;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(sav<strong>edInstanceState);
    setContentView(R.layout.activity_main);
    initViews();
    initEvents();
}
/**
 * 初始化所有按钮(10个)的事件
 */
private void initEvents() {
    mBtn0.setOnClickListener(new MyOnClickListener());
    mBtn1.setOnClickListener(new MyOnClickListener());
    mBtn2.setOnClickListener(new MyOnClickListener());
    mBtn3.setOnClickListener(new MyOnClickListener());
    mBtn4.setOnClickListener(new MyOnClickListener());
    mBtn5.setOnClickListener(new MyOnClickListener());
    mBtn6.setOnClickListener(new MyOnClickListener());
    mBtn7.setOnClickListener(new MyOnClickListener());
    mBtn8.setOnClickListener(new MyOnClickListener());
    mBtn9.setOnClickListener(new MyOnClickListener());
    mBtn10.setOnClickListener(new MyOnClickListener());
}
/**
 * 初始化所有控件(10个)
 */
private void initViews() {
    mFrameLayout = (FrameLayout) findViewById(R.id.frameLayout0);
    mBtn0 = (Button) findViewById(R.id.btn0);
    mBtn1 = (Button) findViewById(R.id.btn1);
    mBtn2 = (Button) findViewById(R.id.btn2);
    mBtn3 = (Button) findViewById(R.id.btn3);
    mBtn4 = (Button) findViewById(R.id.btn4);
    mBtn5 = (Button) findViewById(R.id.btn5);
    mBtn6 = (Button) findViewById(R.id.btn6);
    mBtn7 = (Button) findViewById(R.id.btn7);
    mBtn8 = (Button) findViewById(R.id.btn8);
    mBtn9 = (Button) findViewById(R.id.btn9);
    mBtn10 = (Button) findViewById(R.id.btn10);
}
/**
 * 处理按钮点击事件
 */
private class MyOnClickListener implements View.OnClickListener {
    @Override
    public void onClick(View v) {
        mFrameLayout.removeAllViewsInLayout();  //移除mframeLayout中所有的view
        switch (v.getId()) {
            case R.id.btn0:
                mFrameLayout.addView(new MyView(MainActivity.this,0));
                break;
            case R.id.btn1:
                mFrameLayout.addView(new MyView(MainActivity.this,1));
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值