Ich gehe durch ein Problem in einer Anwendung hier meine zu diesem Thema verwandt. Sehen Sie, ob Sie mir helfen können:Drawable und Android-Bildschirm Pixeldichte für feste Bildgröße
In meinem Fall habe ich eine ImageView, die ein Lineal zeigt, und dann muss ich diese Regel in der realen Größe zeigen, wo es nicht wachsen oder verkleinern muss wie die Bildschirmgröße oder Dichte. Wenn ich mein Moto G3 als Basis benutze, funktioniert es perfekt, aber wenn andere Geräte getestet werden, verliert es die tatsächliche Größe eines Lineals, weil das Bild versucht, die Bildschirmgröße anzupassen.
Das Bild des Lineals ist in PNG und misst 3600px x 155px und hat bis zu 30cm gemessen, es ist innerhalb eines LinearLayout orizontal. In meinem sichtbaren Bereich der Moto G3 ist es in 10cm, ein größerer Bildschirm zum Beispiel sollte einen größeren Bereich des Lineals (11 bis 15cm zum Beispiel) zeigen, aber es zeigt nur 10cm im Sichtfeld des Bildschirms, das zeigend Es wächst und schrumpft als Anzeigeeinstellungen und Dichte des Geräts.
Bevor ich ein Bild von RAGUA für jede Ressource (xxhdpi, xhdpi, etc) hatte, entschied ich mich, es in den Assets-Ordner von Android zu migrieren, aber immer noch mit dem gleichen Problem.
Haben Sie ein Licht, wie Sie es beheben können?
folgt dem Code:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/rulerPolegada"
android:layout_width="1780dp"
android:layout_height="103dp"
android:layout_marginTop="-10dp"
android:layout_marginLeft="@dimen/left_ruler"
/>
</RelativeLayout>
</HorizontalScrollView>
</LinearLayout>
Und wie gesagt, nachdem ich für Vermögenswerte, begann ich es in Java zu setzen:
rulerPolegada = (ImageView) view.findViewById(R.id.rulerPolegada);
rulerPolegada.setImageDrawable(Controller.getImageAssets(getActivity(), "ruler_polegada.png"));
Ok, siehe: Diesmal hat meine App die folgenden Daten, e es funktioniert gut in Moto G3, mit Dichte 320: Bild PNG: 3591px - 153px ImageView: layout_width: 1780dp; layout_höhe: 153dp; Was wäre die Berechnung für ein Gerät mit 480 dpi Dichte zum Beispiel? –
@ PauloLinhares-Packapps Ich habe Berechnung für 480dp am Ende der Antwort hinzugefügt –
Es tut mir leid, ich wollte 320 und andere als 480. Es war mir nicht klar, diese Parameter Berechnungen. –