ここでは、この問題に関するアプリケーションの問題を解決します。固定サイズの画像の描画可能な画面サイズとAndroidの画面のピクセル密度
私の場合ImageViewにルーラーが表示されていて、このルールを画面サイズや密度として拡大または縮小する必要のないリアルサイズで表示する必要があります。私のMoto G3を基にして、完璧に動作しますが、他のデバイスをテストすると、イメージがスクリーンサイズに合っているため、実際のルーラのサイズが失われます。
ルーラーの画像はPNG形式で3600px x 155pxと測定され、30cmまで測定され、LinearLayoutまたはhorizontalの範囲内にあります。私のMoto G3の可視領域では、10cmのところにあります。たとえば、大きなスクリーン(例えば、11〜15cm)がルーラーのより広い領域を表示する必要がありますが、画面の視野には10cmしかありません。デバイスの表示設定と密度として拡大または縮小します。
リソース(xxhdpi、xhdpiなど)ごとにRAGUAの画像が表示される前に、Androidのassetsフォルダに移行することにしましたが、同じ問題が残っています。
あなたはそれを修正する方法について光を持っていますか?
コードに従います。
<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>
そして私は資産のI映像の後、私はJavaでそれを設定するために始めた、と述べたとして:
rulerPolegada = (ImageView) view.findViewById(R.id.rulerPolegada);
rulerPolegada.setImageDrawable(Controller.getImageAssets(getActivity(), "ruler_polegada.png"));
[OK]を参照してください:この時間私のアプリには、以下のデータがあります:密度が320の、Moto G3でうまくいきます。 イメージPNG:3591px - 153px ImageView:layout_width:1780dp; layout_height:153dp; たとえば、480 dpiの密度を持つデバイスの計算はどのようになりますか? –
@ PauloLinhares-Packapps答えの最後に480dpの計算を追加しました –
私は申し訳ありませんが、私は320と480以外を意味しました。これらのパラメータの計算は私には明らかではありませんでした。 –