• Как отрисовать таймер поверх других приложений?

    Тут полюбому копать в сторону оверлея.

    Только для твоего приложения нужен будет дополнительный пермишен .)
    uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />


    public class OverlayService extends Service {
    
        @Override
        public void onCreate() {
            super.onCreate();
    
            WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
    
            View overlay = /*  Твоя вью сдесь*/;
    
            WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
                PixelFormat.TRANSLUCENT);
            windowManager.addView(overlay , params);
        }
    
        @Override
        public IBinder onBind(Intent intent) {
            return null;
        }   
    }


    Не забудь добавить в манифест
    service android:name=".OverlayService" >


    и стартануть его
    startService(new Intent(this, OverlayService.class));


    Отключить тачи можно через
    WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
    Ответ написан
    1 комментарий
  • Как соеденить/наложить изображения или "надеть" на нарисованного героя "доспехи"?

    Создать 1 вью.
    Переопределить onDraw и канвасом отрисовать столько битмапов, сколько вам надо.

    ПсевдоКот.
    @Override
    public void onDraw(Canvas canvas) {
    
            Bitmap image = BitmapFactory.decodeResource(getResources(),R.drawable.body);
            canvas.drawBitmap(image, 0, 0, paint);
    
            // if weapon exist
            Bitmap image2 = BitmapFactory.decodeResource(getResources(),R.drawable.weapon);
            canvas.drawBitmap(image2, 0, 0, paint);
    
            // if armor exist
            Bitmap image3 = BitmapFactory.decodeResource(getResources(),R.drawable.armor);
            canvas.drawBitmap(image3, 0, 0, paint);
    }
    Ответ написан
    1 комментарий