Ich habe eine harte Zeit, dies richtig zu machen.Converting dp in Pixel für die Unterstützung mehrerer Bildschirme
Grundsätzlich erstelle ich ein ImageView und einen LayoutParameter darauf anwenden.
LayoutParams lp = new LayoutParams(width, height);
lp.gravity = Gravity.CENTER;
Ich weiß, dass width
und height
Parameter Pixelzahl erhalten, so dass ich vorbei sie in DP und es auf absolute Pixel Umwandlung mit:
public int convertToPixels(float dpSize){
final float density = getResources().getDisplayMetrics().density;
return ((int) (dpSize * density + 0.5f));
}
Soweit ich weiß, soll dies ein ziehbar machen füllen Sie genau die gleiche Fläche in verschiedenen Bildschirmen, richtig? Leider passiert das überhaupt nicht.
Ist etwas falsch mit diesen Methoden, die ich verwende?
Diese zwei Emulatoren unten haben das gleiche Bild und die gleiche Menge an DP. Linke Emulator ist 1.0 Dichte und rechts ist 2.0. Warum sieht es noch so aus? so anders? undertand nicht ..
Saini, werfen Sie einen Blick auf meine Bearbeitung .. Warum sieht es nicht richtig aus sogar mit der gleichen dp Menge? – AndroidDev
funktioniert mein Code für Sie? – Saini
es ist sicher, dass die Berechnung korrekt ist, aber die Bilder sind immer noch unterschiedlich in Termen der Größe – AndroidDev