0

Когда мы прокручиваем, передний план главного экрана (значки, виджеты и т. Д.) Перемещается влево или вправо по всей ширине экрана, но только фоновое изображение (или живые обои) перемещается на часть этой ширины. Мой вопрос в том, как получить этот эффект. до этого сделали.андроид живые обои эффект параллакса-прокрутки

SurfaceHolder holder = getSurfaceHolder(); 
     Canvas canvas = null; 
     try { 
      canvas = holder.lockCanvas(); 
      if (canvas != null) { 

       drawCircles(canvas); 
      } 
     } finally { 
      if (canvas != null) 
       holder.unlockCanvasAndPost(canvas); 
     } 

функция ничейный

{ 
    private void draw(Canvas canvas) { 
     Paint paint = new Paint(); 
     DisplayMetrics metdisplayMatrics = new DisplayMetrics(); 
     Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); 
     display.getMetrics(metdisplayMatrics); 

      canvas.save(); 
      canvas.drawColor(0xff000000); 
      mRecscreenRectangleFrame = new Rect(0, 0, (int) (metdisplayMatrics.widthPixels*2.0), metdisplayMatrics.heightPixels); 
      photo1= BitmapFactory.decodeResource(getResources(), R.drawable.img1); 
      canvas.drawBitmap(photo1, null,mRecscreenRectangleFrame, paint); 
      photo1.recycle(); 
      System.gc(); 
}    

Теперь, как поставить эффект живые обои параллакс-скроллинга.

@Override 
    public void onOffsetsChanged(float xOffset, float yOffset, 
      float xOffsetStep, float yOffsetStep, int xPixelOffset, 
      int yPixelOffset) { 

     super.onOffsetsChanged(xOffset, yOffset, xOffsetStep, yOffsetStep, 
       xPixelOffset, yPixelOffset); 

     WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext()); 
     View view=new View(getBaseContext()); 

     myWallpaperManager.setWallpaperOffsets(view.getWindowToken(),xOffset, 0f); 

    } 

еще не работает .................

ответ

2

вызов WallpaperManager.setWallpaperOffsets проинструктировать обои для прокрутки.

Documentation

Так что это должна быть сфокусирована обои:

WallpaperManager.setWallpaperOffsets(getWindowToken(), 0.5f, 0f); 

Это должно прокручивать его в сторону:

WallpaperManager.setWallpaperOffsets(getWindowToken(), 0f, 0f); 

Это должно прокрутить его на другую сторону:

WallpaperManager.setWallpaperOffsets(getWindowToken(), 1f, 0f); 

Если вы собираетесь это сделать, вы должны убедиться, что знаете, что обои могут быть прокручены, или что пользователь попросил вас включить прокрутку. Многие устройства сконфигурированы с обоими, которые имеют тот же размер, что и экран, и не прокручиваются.

+0

спасибо j__m, пожалуйста, если вы можете дать мне ответ в деталях, я новичок в android. –

+0

Я разработал. –

+0

спасибо J____M. –

Смежные вопросы