質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

3回答

35678閲覧

Androidアプリ開発 ImageViewのサイズ変更

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

1クリップ

投稿2015/03/07 19:06

閲覧いただき、ありがとうございます。
今現在、Androidアプリの勉強をしております。

ImageViewを画面の横幅ぴったりにサイズ変更をしたいと思っております。
画面の横幅を取得でき、ImageViewのサイズ変更はできたのですが、画像サイズの比率は維持したく、下記のコードの●●の部分はどう記述したらよいでしょうか?
よろしくお願いいたします。

lang

1WindowManager wm = getWindowManager(); 2Display disp = wm.getDefaultDisplay(); 3 4imageView = (ImageView) findViewById(R.id.imageView); 5Bitmap bmp = ((BitmapDrawable)frameStrImageView.getDrawable()).getBitmap(); 6bmp = Bitmap.createScaledBitmap(bmp, disp.getWidth(), ●●, false); 7imageView.setImageBitmap(bmp);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ご質問のコードでも全然問題ないと思いますが、私なら縦横比の維持はAndroid側に極力制御させたいと思います。

例えば下記のような感じで。

lang

1 <ImageView 2 android:id="@+id/imageView1" 3 android:layout_width="wrap_content" 4 android:layout_height="wrap_content" 5 android:adjustViewBounds="true" 6 android:scaleType="fitXY" 7 android:src="@drawable/ic_launcher" />

lang

1 WindowManager wm = getWindowManager(); 2 final Display disp = wm.getDefaultDisplay(); 3 4 final ImageView img = (ImageView) findViewById(R.id.imageView1); 5 ViewGroup.LayoutParams params = img.getLayoutParams(); 6 7 // 横幅のみ画面サイズに変更 8 params.width = disp.getWidth(); 9 img.setLayoutParams(params);

投稿2015/03/12 02:47

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Bitmapの幅と高さはそれぞれ下記のように取得できます。

lang

1bmp.getHeight(); 2bmp.getWidth();

この幅と高さの比率と同じ比率に表示すればよいので ●●の部分は

lang

1disp.getWidth() * bmp.getHeight() / bmp.getWidth()

でいけると思います。

投稿2015/03/11 15:52

jollyjoester

総合スコア1585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

画面の横幅をベースに比率を維持したいのですよね?
まず、画像の縦横の比は、横幅:縦幅=1:縦幅/横幅
ですね。

よって、画像の横幅の計算は画面の横幅に画像の比率をかければよいです、
画像の横幅 = 画面の横幅 * 画像の縦幅 / 画像の横幅

投稿2015/03/08 23:31

shinriyo

総合スコア44

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問