suchen

Heim  >  Fragen und Antworten  >  Hauptteil

android - 自定义View继承ImageView,需要创建一个bitmap,如何获取width和height?

PHPzPHPz2773 Tage vor717

Antworte allen(3)Ich werde antworten

  • PHP中文网

    PHP中文网2017-04-17 17:04:54

    由于onDraw()会频繁调用,所以不建议在该方法里新建对象实例。

    你的困扰应该是不知道怎么正确获取View的尺寸吧,获取到的width和height总是为0。

    我说一个最简单的方法,权当抛砖引玉吧

    使用view.post()

    public class CustomView extends View {
        private Bitmap mBitmap;
    
        public CustomView(Context context) {
            super(context)
            
            ...
            
            this.post(new Runnable() {
                @Override
                public void run() {
                    mBitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
                }
            });
        }
    }

    Antwort
    0
  • 高洛峰

    高洛峰2017-04-17 17:04:54

    可以用View.onLayout或ViewTreeObserver

    Antwort
    0
  • 怪我咯

    怪我咯2017-04-17 17:04:54

    你既然是继承ImageView 我想你自然要使用到ImageView的setImageBitmap()、setImageDrawable等方法,所以你可以在这些方法中获取width与height或者直接获取bitmap

    Antwort
    0
  • StornierenAntwort