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>
效果如下:


原文地址:https://www.cnblogs.com/lianggegege123/p/12782662.html