美文网首页学习笔记
实习笔记17.07.28

实习笔记17.07.28

作者: 方木Rudy | 来源:发表于2017-08-03 22:07 被阅读0次
    1. androidstudio快捷键: Ctrl+N 查找className
    2. Adapter中用不了getWindowManager()方法怎么办?
      答:
      Android获取屏幕大小宽度的方法有好多种,
      除了getWindowManager以外
    // 通过WindowManager获取
    DisplayMetrics dm =newDisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    System.out.println("heigth : " + dm.heightPixels);
    System.out.println("width : " + dm.widthPixels);
    

    还有好多种

    // 通过Resources获取
    DisplayMetrics dm2 = getResources().getDisplayMetrics();
    System.out.println("heigth2 : " + dm2.heightPixels);
    System.out.println("width2 : " + dm2.widthPixels);// 获取屏幕的默认分辨率
    Display display = getWindowManager().getDefaultDisplay();
    System.out.println("width-display :" + display.getWidth());
    System.out.println("heigth-display :" + display.getHeight());
    

    但是为什么Activity中就可以用getWindowManager,Adapter中不可以呢?
    因为getWindowManager()这个方法是在类Activity中的,如果你自己编写的类不是继承于类Activity,那么必然在这个类中书写代码就不能用到getWindowManager()这个方法。所以当你自己编写的类不是继承于类Activity,那么就只能应用第二种方法通过Resources获取获取手机屏幕的大小。

    1. 自定义控件XML文件出现错误??
      答:(1)在as中无法预览
      在自定义view的构造函数中添加
    if (isInEditMode()) { return; }
    

    (2)setContentView(xxx)中 inflate布局文件出现错误
    这是因为我在自定义view的构造函数中有误
    自定义view的三个构造函数都要重写,最好一个或两个参数的构造函数调用this()转到第三个构造函数中

     public DermabrasionImageView(Context context) {
            this(context, null);
        }
    
    
        public DermabrasionImageView(Context context, AttributeSet attrs) {
            this(context, attrs, 0);
        }
    
        public DermabrasionImageView(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
            //  if (isInEditMode()) { return; }
            mContext = context;
            init();
        }
    
    1. Bitmap一类型
    1. AndroidStudio 2.1.2 instantApp 有时候重新设置资源文件(比如显示一张图片)会显示不出来,这时候卸载app重新启动就好
    2. 图片压缩工具类

    BitmapFactory.Options newOpts = new BitmapFactory.Options();
    // 开始读入图片,此时把options.inJustDecodeBounds 设回true,即只读边不读内容
    newOpts.inJustDecodeBounds = true;
    newOpts.inPreferredConfig = Bitmap.Config.RGB_565;
    // Get bitmap info, but notice that bitmap is null now
    Bitmap bitmap = BitmapFactory.decodeFile(imgPath, newOpts);
    为什么??
    答:inJustDecodeBounds为true,只读边界,所以bitmap为null

    1. point和pointF有什么区别?

    【项目自查】

    1. 照片压缩显示要考虑不同图片大小压缩比例不同

    相关文章

      网友评论

        本文标题:实习笔记17.07.28

        本文链接:https://www.haomeiwen.com/subject/jonxlxtx.html