项目小点小结
1.动态设置控件的宽高:
Button mbtn = (Button) findViewById(R.id.btn_test);
LayoutParams lp=mbtn.getLayoutParams();
lp.width=100;
lp.height=200;
mbtn.setLayoutParams(lp);
2.获取当前线程:
Thread.currentThread().getName().equals(“main”) // 主线程
3.图片压缩工具:
luban:
https://github.com/Curzibn/Luban
4.Glide:详解
http://blog.csdn.net/xiehuimx/article/details/52349317
圆形图片:
Glide.with(mContext)
.load(Uri.parse(URLBuilder.URLBaseHeader + data.getHeadImg()))
.asBitmap()
.error(R.drawable.default60)
.placeholder(R.drawable.default60)
.into(new BitmapImageViewTarget(holder.img) {
@Override
protected void setResource(Bitmap resource) {
super.setResource(resource);
RoundedBitmapDrawable circularBitmapDrawable =
RoundedBitmapDrawableFactory.create(mContext.getResources(), resource);
circularBitmapDrawable.setCircular(true);
holder.img.setImageDrawable(circularBitmapDrawable);
}
});
5.imageView 中 android:contentDescription的作用:
可以不添加,
http://blog.csdn.net/anlidengshiwei/article/details/45891867
6.
h5 交互:
详情:
http://www.cnblogs.com/zxxiaoxia/p/5340267.html
1.android 端提供js接口
private class WebInterface {
@JavascriptInterface
public void callFromJSBasicDataType(int x, float y, char c, boolean result) {
String str = "-" + (x + 1) + "-" + (y + 1) + "-" + c + "-" + result;
Log.e("tttt", "tttttt"+str);
}
@JavascriptInterface
public void callAndroidMethod() {
Log.e("tttt", "tttttt2");
}
}
2.设置webview:
a)设置webView可以支持js
eg:
webView.getSettings().setJavaScriptEnabled(true);
b)给webView添加js接口类,并取别名
webView.addJavascriptInterface(new WebInterface(), "robot");
3.html 中添加接口名称
<button onclick="robot.callFromJSBasicDataType(1,2,'a',true);">
7.webview 的实践:
详情: http://www.jianshu.com/p/d3ef9c62b6c8
1.利用腾讯的X5内核浏览服务,x5WebView
2.Crosswalk 会增加apk的体积,如果要深入研究建议用这个
8.一些不常用但是实用的知识点
http://liukun.engineer/2016/04/11/Android开发中,那些让你相见恨晚的方法、类或接口/
9.android:descendantFocusability,ListView的item中CheckBox等元素抢焦点导致item点击事件无法响应时,除了给对应的元素设置 focusable,更简单的是在item根布局加上android:descendantFocusability=”blocksDescendants”
10.
includeFontPadding=”false”,TextView默认上下是有一定的padding的,有时候我们可能不需要上下这部分留白,加上它即可。
11.android 适配问题
1.hdpi,xhdpi,xxhdpi,mdpi按使用率排名(1---4)
2.如果三套图:hdpi,xhdpi,xxhdpi 如果是一套图,就放在xxhdpi 最节省内存
3. xxxhdpi 适配问题: xxxdpi的设备不多,没有必要为此增加apk 容量包
4.
as 下面 mipmap app launcher icons.
drawable 用来存放jpg,png,gif,.9等图片的 详见链接
详见:
http://www.open-open.com/lib/view/open1462929484471.html
12.
获取像素:
获取尺寸:
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
float density = displayMetrics.density; //屏幕密度
int densityDpi = displayMetrics.densityDpi;//屏幕密度dpi
int heightPixels = displayMetrics.heightPixels;//屏幕高度的像素
int widthPixels = displayMetrics.widthPixels;//屏幕宽度的像素
float scaledDensity = displayMetrics.scaledDensity;//字体的放大系数
float xdpi = displayMetrics.xdpi;//宽度方向上的dpi
float ydpi = displayMetrics.ydpi;//高度方向上的dpi
13.大图片压缩处理
利用智图(背景图片)
http://zhitu.isux.us/
14.as 2.2 以及对apk的处理
http://blog.csdn.net/vfush/article/details/52266843#使用android-studio-22
15.RecyclerView使用
1.adapter 使用:
RVAdapter extends RecyclerView.Adapter<RVAdapter.MViewHolder>
2.viewHolder:(包含butterKnife 书写)
static class MViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.id_num)
TextView idNum;
public MViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this,itemView);
}
}
3.item 点击事件
public interface onItemClickListener {
void onItemClick(View view, int postion);
}
//
private onItemClickListener onItemClickListener;
//
public void setmOnItemClickListener(onItemClickListener mOnItemClickListener) {
this.onItemClickListener = mOnItemClickListener;
}
//
holder.layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onItemClickListener.onItemClick(view, position);
}
});
// 调用
mAdapter.setmOnItemClickListener
16.hashset 去重
http://www.cnblogs.com/sprinkle/p/6480906.html