• Android studio学习任务总结(五)


    今天使用as完成了一个图片跟随鼠标移动的app

    代码如下:

    .java文件

    package test.com.rabbit;

    import android.support.v7.app.ActionBarActivity;
    import android.os.Bundle;
    import android.view.MotionEvent;
    import android.view.View;
    import android.widget.FrameLayout;

    public class Rabbit extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_rabbit);
    //获取布局文件中的布局管理器
    FrameLayout frameLayout = (FrameLayout)findViewById(R.id.mylayout);
    //创建并实例化rabbit对象
    final RabbitView rabbit = new RabbitView(this);
    //为小兔子添加事件监听器
    rabbit.setOnTouchListener(new View.OnTouchListener(){

    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
    rabbit.bitmapX = motionEvent.getX();
    rabbit.bitmapY = motionEvent.getY();
    rabbit.invalidate();
    return true;
    }
    });
    frameLayout.addView(rabbit);

    }
    }
    package test.com.rabbit;

    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.Paint;
    import android.view.View;

    /**
    * Created by 亮亮哥 on 2020/4/26.
    */
    public class RabbitView extends View {
    //定义两个全局变量
    public float bitmapX;
    public float bitmapY;

    public RabbitView(Context context) {
    super(context);
    bitmapX=290;
    bitmapY=130;
    }

    @Override
    protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    Paint paint = new Paint();
    Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(),R.mipmap.rabbit);
    canvas.drawBitmap(bitmap,bitmapX,bitmapY,paint);
    if(bitmap.isRecycled()){//判断
    bitmap.recycle();
    }
    }
    }
    xml文件:
    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="@mipmap/grassland"
    android:id="@+id/mylayout"
    tools:context="test.com.rabbit.Rabbit">


    </FrameLayout>
    效果如下:

    
    
  • 相关阅读:
    双链表
    单链表
    二叉树的遍历
    leetcode-9. 回文数
    leetcode-8. 字符串转换整数 (atoi)
    leetcode-7. 整数反转
    leetcode-6. Z 字形变换
    leetcode-5. 最长回文子串
    manacher-线性查找算法-(最长回文子串问题)
    bfprt-线性查找算法-(topK问题)
  • 原文地址:https://www.cnblogs.com/lianggegege123/p/12782662.html
Copyright © 2020-2023  润新知