Создание заставки в Android

Можно ли запрограммировать заставку для андроида (не блокировки экрана)?

Я ищу учебник по программированию экранной заставки. Экранная заставка активируется, поскольку пользователь больше ничего не делает. Если пользователь коснется экрана, заставка исчезнет. Это возможно?


person goojr    schedule 02.12.2011    source источник


Ответы (3)


Вы можете получить ACTION_SCREEN_OFF в своем приложении с помощью BroadcastReceiver. В методе onReceive этого BroadcastReceiver запустите действие как screensaver. И вы можете зарегистрировать прослушиватель для touch events, и когда это событие произойдет, завершите свое приложение.

person hasanghaforian    schedule 25.08.2012

Пример кода экранной заставки Android

Попробуйте сначала найти ответы, прежде чем что-то спрашивать

person Andrei Sfat    schedule 02.12.2011
comment
Спасибо. Я тоже нашел этот ответ, но это не то же самое. Они говорят об экране блокировки, и это не очень полезно для моего вопроса. - person goojr; 05.12.2011

Привожу отрывок для скринсейвера: Комментарии пояснят.

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); Точка res=новая точка(); getWindowManager().getDefaultDisplay().getSize(res);

        DotsView myView = new DotsView(this,res.x,res.y);
        setContentView(myView);
    }


class DotsView extends View 
{
        int i = 0;Bitmap bmp;Canvas cnv;Rect bounds;Paint p;Random rnd;int width,height;

        public DotsView(Context context ,int width ,int height) 
    {
            super(context);
            this.width = width;
            this.height = height;
            bmp = Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_8888);
        cnv = new Canvas(bmp);
            bounds = new Rect(0 , 0, width,height);
        p = new Paint();
            rnd = new Random();

        p.setColor(Color.RED);
        p.setStyle(Paint.Style.FILL_AND_STROKE);
        p.setDither(false);
        p.setStrokeWidth(3);
        p.setAntiAlias(true);
        p.setColor(Color.parseColor("#CD5C5C"));
        p.setStrokeWidth(15);
        p.setStrokeJoin(Paint.Join.ROUND);
        p.setStrokeCap(Paint.Cap.ROUND);
     }

     @Override
         protected void onDraw(Canvas c) 
    {//Canvas c gets recycled , so drawing on it will keep erasing previous causing animation...we dont want that.
            p.setColor(Color.argb(255, rnd.nextInt(255),rnd.nextInt(255), rnd.nextInt(255)));
    //cnv is outside object canvas, so drawing on it will append, no recycle, we want that.
            cnv.drawPoint(rnd.nextInt(width), rnd.nextInt(height), p); 
    //drawing on cnv canvas, draws on bitmap bmp
        //c.drawBitmap(bmp,src_rect,dest_rect,paint):-
    // crop as per src_rect(null means full), and scale to dest_rect, draw using paint object-null for 'as it is'.  
        c.drawBitmap(bmp, null, bounds , null);
    //make onDraw() recursive but dont make blocking-loop & not indefinite condition
        if(i<1000) {  i++;invalidate();  } 

Полный код см. здесь: Code-Example-Screen-Saver-Colorful-Dots

person Animesh Shrivastav    schedule 26.08.2017