80,349
社区成员
发帖
与我相关
我的任务
分享
package com.gliy.ui;
import android.content.Context;
import android.graphics.Canvas;
import android.view.View;
import com.gliy.control.PlayerControl;
import com.gliy.dto.MenuDto;
import com.gliy.model.MenuModel;
public class MainActivity extends View {
private MenuModel mainMenu;
private MenuModel background;
public MainActivity(Context context, MenuDto menuDto) {
super(context);
this.setFocusable(true);
mainMenu=new MainMenu(context);
mainMenu.setMenuDto(menuDto);
background=new MainBackgroud(context);
background.setMenuDto(menuDto);
}
@Override
public void onDraw(Canvas canvas) {
background.paint(canvas);
mainMenu.paint(canvas);
super.onDraw(canvas);
};
public void setPlayerControl(PlayerControl playerControl) {
this.setOnTouchListener(playerControl);
}
}
package com.example.android_saoutils_demo1;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;
public class MainLayer extends View {
private MainMenu mainMenu;
private boolean isOpenMenu;
public MainLayer(Context context) {
super(context);
setFocusable(true);
mainMenu = new MainMenu(context);
isOpenMenu = false;
// TODO Auto-generated constructor stub
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
int x = (int) event.getX();
int y = (int) event.getY();
if (!isOpenMenu && event.getAction() == MotionEvent.ACTION_DOWN) {
mainMenu.getUserBtn().setDrawX(x);
mainMenu.getUserBtn().setDrawY(y);
isOpenMenu=true;
}
mainMenu.initButton();
invalidate();
return true;
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint paint = new Paint();
showBackground(canvas, paint);
showMainMenu(canvas, paint);
}
private void showBackground(Canvas canvas, Paint paint) {
Bitmap background = BitmapFactory.decodeResource(this.getResources(),
R.drawable.kirito);
canvas.save();
canvas.scale(1.5f, 1.5f, background.getWidth() / 2, 0);
canvas.drawBitmap(background, 0, 0, paint);
canvas.restore();
}
private void showMainMenu(Canvas canvas, Paint paint) {
MainMenuButton[] buttonArray = mainMenu.getMainMenuButtons();
for (MainMenuButton button : buttonArray) {
canvas.drawBitmap(
button.getBgButton(),
button.getDrawX()
- DpPxUtil.DpToPx(getContext(),
MainMenuButton.TO_CENTER),
button.getDrawY()
- DpPxUtil.DpToPx(getContext(),
MainMenuButton.TO_CENTER), paint);
}
}
}