Problem mit Skalierung von Bitmaps im Canvas bei verschiedener Density

  • 2 Antworten
  • Letztes Antwortdatum
B

Boris0815

Fortgeschrittenes Mitglied
4
Hiho,

ich habe ein Problem damit mehrere Bitmaps in einem Canvas darzustellen.
Ich habe ein Hintergrundbild worauf ich verschiedene kleinere Bilder positionieren möchte.
Wenn ich das auf meinem Tablet (1200x800) teste sieht alles gut aus,
wenn ich die gleiche App auf meinem Phone (800x480) teste sitzen die kleinen Bilder an der falschen Stelle.

Ich habe schon probiert mit Hilfe der Density die Bilder richtig zu skalieren / positionieren, aber es haut irgendwie nicht hin.

Mein Hintergrundbildcode:

Code:
       public void draw(Canvas canvas) {
          Bitmap bMap = BitmapFactory.decodeResource(con.getResources(), R.drawable.screen1);
          DisplayMetrics bla = con.getResources().getDisplayMetrics();
          int width = bla.widthPixels;
          int height = bla.heightPixels;

          float dens = con.getResources().getDisplayMetrics().density;

          Rect src = new Rect(0, 0, (int)((bMap.getWidth()-1) * dens), bMap.getHeight()-1);
          Rect dest = new Rect(0, 0, (int)((width-1)), height-1);
          
          canvas.drawBitmap(bMap, src, dest, paint);
       }
Mein Code für die kleinen Bilder:

Code:
       public void draw(Canvas canvas) {
              Bitmap bMap = BitmapFactory.decodeResource(con.getResources(), 
                      con.getResources().getIdentifier("drawable/" + name, null, con.getPackageName()));
              DisplayMetrics bla = con.getResources().getDisplayMetrics();
              int width = bla.widthPixels;
              int height = bla.heightPixels;
              
              float dens = con.getResources().getDisplayMetrics().density;

              Rect dest = new Rect((int)(xPos * dens), yPos, (int)((xPos + bMap.getWidth()-1) * dens), yPos + bMap.getHeight()-1);
              Rect src = new Rect(0, 0, (int)((width-1)), height-1);
              
              canvas.drawBitmap(bMap, src, dest, paint);
       }
Kann mir bitte jemand helfen?

Gruß

Boris
 
Keiner einer ne Idee? :sad:
 
Hi,

schau mal mit der density hier nach.
Hatte die Videos mal vor langem druch gemacht, da kam auch so etwas vor...

Gruß
 
Zurück
Oben Unten