いつもお世話になります。今回もよろしくお願いします。
画像を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>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/27 09:11
2016/11/27 14:35
2016/11/28 05:47
2016/11/28 12:24