- androidstudio快捷键: Ctrl+N 查找className
- 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获取获取手机屏幕的大小。
- 自定义控件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();
}
- Bitmap一类型
- AndroidStudio 2.1.2 instantApp 有时候重新设置资源文件(比如显示一张图片)会显示不出来,这时候卸载app重新启动就好
- 图片压缩工具类
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
- point和pointF有什么区别?
【项目自查】
- 照片压缩显示要考虑不同图片大小压缩比例不同
网友评论