ユーザ用ツール

サイト用ツール


android:imageview

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

次のリビジョン
前のリビジョン
android:imageview [2019/11/03 18:59]
ips 作成
android:imageview [2019/11/04 20:14] (現在)
ips
ライン 7: ライン 7:
         image1.setImageResource(R.drawable.man)         image1.setImageResource(R.drawable.man)
         ​         ​
 +        ​
 +        // imageViewのサイズを変更する 
 +        layout1.addView(imagev1) ​       ​
 +        imagev1.layoutParams.width=200
 +        imagev1.layoutParams.height=200
 </​code>​ </​code>​
  
ライン 71: ライン 76:
 </​code>​ </​code>​
  
 +===== ImageViewのタッチした部分が透明かどうかを判定する =====
  
 +<​code>​
 +        // スイッチのタッチイベント
 +        imageViewSwitch.setOnTouchListener { view, motionEvent ->
 +            try {
 +            ​
 +                // ImageViewからビットマップを取得する
 +                val bitmap = imageViewSwitch.drawable.toBitmap()
 +                ​
 +                // タッチした部分のピクセルを取得している
 +                // bitmapのwidth、heightは元の画像のピクセル。(pix)
 +                // motionEvent.x、yで取得できるのは、ImageViewの左上からの位置。(px)
 +              // bitmapのタッチした位置をしるには、pxをpixに変換する必要がある。
 +                // motionEvent.x:
 +                val x=motionEvent.x *  bitmap.width / (imageViewSwitch.right - imageViewSwitch.left)
 +                val y=motionEvent.y *  bitmap.height / (imageViewSwitch.bottom - imageViewSwitch.top)
 +                ​
 +                // ★bitmap.getPixel のx y は、画像の実サイズのpixを指定することがポイント
 +                val pix = bitmap.getPixel(x.toInt(),​y.toInt())
 +
 +                when {
 +                    // Down で画像を変える Color.alpha(pix)でタッチした箇所のpixの透明度がわかる。
 +                    // Color.alpha(pix)が0の場合は透明
 +                    (motionEvent.action == MotionEvent.ACTION_DOWN) && (Color.alpha(pix)!=0) -> {
 +                        if (switchValue==false) {
 +                            imageViewSwitch.setImageResource(R.drawable.switch_on)
 +                            switchValue = true
 +                        }else{
 +                            imageViewSwitch.setImageResource(R.drawable.switch_off)
 +                            switchValue = false
 +                        }
 +                    }
 +                }
 +
 +            }catch (e: Exception){
 +
 +            }
 +
 +            true
 +        }
 +
 +
 +</​code>​
android/imageview.1572775156.txt.gz · 最終更新: 2019/11/03 18:59 by ips