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:
	
	
	
		
Mein Code für die kleinen Bilder:
	
	
	
		
Kann mir bitte jemand helfen?
Gruß
Boris
				
			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);
       }
	
		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);
       }
	Gruß
Boris
						