代码片段

来源:互联网 发布:阿里标题优化工具 编辑:程序博客网 时间:2024/05/17 07:16

项目小点小结

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 {@JavascriptInterfacepublic void callFromJSBasicDataType(int x, float y, char c, boolean result) {String str = "-" + (x + 1) + "-" + (y + 1) + "-" + c + "-" + result;Log.e("tttt", "tttttt"+str);}@JavascriptInterfacepublic 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
0 0