android studio实现满屏爱心代码
时间: 2023-09-02 07:12:25 浏览: 77
以下是一个简单的实现满屏爱心的代码:
1. 在布局文件中添加一个空的 FrameLayout
```
<FrameLayout
android:id="@+id/frame_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
2. 创建一个 HeartView 类,继承自 View,并实现 onDraw 方法
```
public class HeartView extends View {
private Paint mPaint;
private Path mPath;
private float mWidth;
private float mHeight;
public HeartView(Context context) {
super(context);
init();
}
public HeartView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init();
}
public HeartView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
mPaint = new Paint();
mPaint.setStyle(Paint.Style.FILL);
mPaint.setColor(Color.RED);
mPath = new Path();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
mPath.reset();
float x = mWidth / 2;
float y = mHeight / 5;
float offsetY = mHeight / 12;
float offsetX = mWidth / 12;
mPath.moveTo(x, y);
mPath.cubicTo(x + offsetX, y - offsetY, x + mWidth / 2 - offsetX, y - offsetY, mWidth / 2, y + offsetY);
mPath.cubicTo(mWidth / 2 + offsetX, y - offsetY, mWidth - offsetX, y - offsetY, x, y);
mPath.close();
canvas.drawPath(mPath, mPaint);
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
mWidth = w;
mHeight = h;
}
}
```
3. 在 Activity 中添加以下代码,生成并添加多个 HeartView 到 FrameLayout 中
```
FrameLayout frameLayout = findViewById(R.id.frame_layout);
for (int i = 0; i < 50; i++) {
HeartView heartView = new HeartView(this);
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.gravity = Gravity.CENTER;
heartView.setLayoutParams(layoutParams);
frameLayout.addView(heartView);
}
```
这样就可以在屏幕上生成多个爱心了。