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

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

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

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

Android

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

2396閲覧

Android studio)画像を自動切替+画像を小さく=セット方法?

navesanta

総合スコア198

Java

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

Android

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2016/11/24 23:06

いつもお世話になります。今回もよろしくお願いします。
画像をlevellistとAlarmManegerを使って自動で切り替えて且つBitmapFactory#optionsを使って画像を小さくしたい場合のセットの方法を教えて下さい。(★の部分です)

AlarmReceiver.java

1 2public class AlarmReceiver extends BroadcastReceiver { 3 4 @Override 5 public void onReceive(Context context, Intent intent) { 6 7 Random random = new Random(); 8 int ranNumber = random.nextInt(6); 9 10 MainActivity.imageView.setImageLevel(ranNumber); 11 12 13 } 14} 15 16MainActivity.java 17 18public class MainActivity extends AppCompatActivity { 19 20 private boolean tapFlag = false; 21 22 private AlarmManager alarmManager; 23 private PendingIntent pendingIntent; 24 25 public static ImageView imageView; 26 27 private int MAX_IMAGE_SIZE = 200; 28 29 @Override 30 protected void onCreate(Bundle savedInstanceState) { 31 super.onCreate(savedInstanceState); 32 setContentView(R.layout.activity_main); 33 34 Intent intent = new Intent(getApplicationContext(),AlarmReceiver.class); 35 pendingIntent = PendingIntent.getBroadcast(getApplicationContext(),0,intent,0); 36 37 alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 38 alarmManager.setRepeating( 39 AlarmManager.RTC, 40 5000, 41 5000, 42 pendingIntent 43 ); 44 45 imageView = (ImageView) findViewById(R.id.stereoImage); 46 47 //画像を小さくする 48 BitmapFactory.Options options = new BitmapFactory.Options(); 49 options.inJustDecodeBounds = true; 50 51 BitmapFactory.decodeResource(getResources(),R.drawable.st001a, options); 52 53 int inSampleSize = calculateInSampleSize(options, MAX_IMAGE_SIZE, MAX_IMAGE_SIZE); 54 55 options.inJustDecodeBounds = false; 56 options.inSampleSize = inSampleSize; 57 58 Bitmap bmp = BitmapFactory.decodeResource( 59 getResources(), 60 R.drawable.levellist, options 61 ); 62 63 ★ここにセットする画像表示ですが 64 65 (1)画像を小さくするメソッド(BitmapFactory#Options)の流れだと 66 → imageView.setImageBitmap(bmp); 67 68 (2)画像をレベルで自動で切り替えるメソッド(listLevelDrawable + alarmManager#setRepeating) 69 の流れだと 70 → imageView.setImageResource(R.drawable.levellist); 71 72 質問)画像を切り替えて且つ画像を小さくしたい場合はどのようなセットをすれば 73 良いのでしょうか? 74 75 } 76 private int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight){ 77 final int height = options.outHeight; 78 final int width = options.outWidth; 79 int inSampleSize = 1; 80 if(height > reqHeight || width > reqWidth){ 81 if(width > height){ 82 inSampleSize = Math.round((float)height / (float)reqHeight); 83 }else { 84 inSampleSize = Math.round((float)width / (float)reqWidth); 85 } 86 } 87 return inSampleSize; 88 } 89} 90 91levellist.xml 92<?xml version="1.0" encoding="utf-8"?> 93<level-list 94 xmlns:android="http://schemas.android.com/apk/res/android"> 95 <item android:maxLevel="0" android:drawable="@drawable/st001a"/> 96 <item android:maxLevel="1" android:drawable="@drawable/st001c"/> 97 <item android:maxLevel="2" android:drawable="@drawable/st002a"/> 98 <item android:maxLevel="3" android:drawable="@drawable/st002c"/> 99 <item android:maxLevel="4" android:drawable="@drawable/st003a"/> 100 <item android:maxLevel="5" android:drawable="@drawable/st003c"/> 101 102</level-list>

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

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

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

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

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

guest

回答1

0

ベストアンサー

LevelListDrawableを動的に作成し、 addLevelで縮小した画像を追加していかないといけないですね。

投稿2016/11/25 01:38

yona

総合スコア18155

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

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

navesanta

2016/11/27 09:11

>LevelListDrawableを動的に作成し final LevelListDrawable levelListDrawable = new LevelListDrawable(); こちらを追加しました。 >addLevelで縮小した画像を追加 levelListDrawable.addLevel(1,1,bmp) 上記で試したのですがタイプが違うと言われてしまいます。キャストすれば良いのだと思いますがこの場合のキャストの仕方が色々試したのですがうまくいきません。教えてください。
yona

2016/11/27 14:35

キャストはできません。Javaのキャストを理解できていないようです。 型階層に関係があるものの型変換を行うことをキャストと言います。 BitmapとBitmapDrawableは関係ないのでキャストできません。BitmapDrawableのリファレンスを読んでください。
navesanta

2016/11/28 05:47

型階層が関係ないためにキャストができない件は理解しました。 levelListDrawable.addLevel(1,1,★) ★印のところに縮小した画像を指定したいのですがどういう考え方をすれば  良いのでしょうか?ヒントで良いのでください。
yona

2016/11/28 12:24

BitmapDrawableのリファレンスを読んでください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問