Android开发知识点总结

1.android之wifi开发

2.Android shape中的padding无效
3.自定义的上下拉刷新和SwipeListView+下拉
http://download.csdn.net/detail/sll110223/8389277

4.String source = "这只是一个测试,测试<u>下划线</u>、<i>斜体字</i>、<font color='red'>红色字</font>的格式";   
htmlFormateTextView.setText(Html.fromHtml(source));  
http://txlong-onz.iteye.com/blog/1142781

5.(Android4.1版本)以上无法启动支付宝的问题"java.security.spec.InvalidKeySpecException"

http://www.tuicool.com/articles/rYVZzq


6.// 判断是否滚动到底部
        boolean scrollEnd = false;
        try {
            if (view.getPositionForView(mAdapter.getFooterView()) == view
                    .getLastVisiblePosition())
                scrollEnd = true;
        } catch (Exception e) {
            scrollEnd = false;
        }

7.EditText 去除边框
android:background="@null"

8.linearlayout divider设置缩进 设置linearlayout paddingLeft就可以。
计算listview的item高度
int totalHeight = 0;
  for (int i = 0; i < mAdapter.getCount(); i++) {
   View listItem = mAdapter.getView(i, null, mListView);
   listItem.measure(0, 0);
   totalHeight += listItem.getMeasuredHeight();
  }

9.Exception raised during rendering: java.lang.System.arraycopy
错误原因: API等级 API 20:Android 4.4w,这是Android官网发布的可穿戴设备的API,它是不支持EditText组件的;

  1. paddingStart & paddingEnd 是根据左右对齐方式来起作用的
  2. 左对齐时, paddingStart 对应 paddingLeft, paddingEnd 对应 paddingRight
  3. 右对齐时, 正好相反 

10.EditText

11.Android中字体加粗
一、在xml文件中使用android:textStyle=”bold”
 
二、但是不能将中文设置成粗体,将中文设置成粗体的方法是: 

TextView tv = (TextView)findViewById(R.id.TextView01); 
TextPaint tp = tv.getPaint(); 
tp.setFakeBoldText(true);

设置edittext输入框的字体颜色
android:textColorHint="#f00"

12.Android 通过httpclient请求web服务器,并解决用户登录session保持

13.使用 MediaStore.Images.Media.getBitmap从Uri中获得bitmap以及其缺陷


15.仅wifi下下载:
1.点击下载的时候判断当前的手机网络状态。
2.注册网络变换广播,或者callback。只有在wifi下才允许下载。

16.清除缓存:


18.目录展示

19.listview套listview事件处理

20.用户反馈:

21.文字设置下划线
中间加横线 
tv.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG ); 
底部加横线: 
tv .getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG );

22.fragment加载布局错误 23.

24.android.os.NetworkOnMainThreadException

25.头像设置
26.拍照不清晰问题:
//这样得到的是缩略图
   System.out.println(data.getData() + "");
   if (data.hasExtra("data")) {
    Bitmap bitmap = data.getParcelableExtra("data");
    mUri = Uri.parse(MediaStore.Images.Media.insertImage(
      getContentResolver(), bitmap, null, null));
    crop(mUri);
   }

27.横竖屏切换生命周期:

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

button设置下划线

http://blog.csdn.net/lixiaodaoaaa/article/details/42737307

28.透明度值:
100% — FF
95% — F2
90% — E6
85% — D9
80% — CC
75% — BF
70% — B3
65% — A6
60% — 99
55% — 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% — 4D
25% — 40
20% — 33
15% — 26
10% — 1A
5% — 0D
0% — 00

29.屏幕适配 30.ImageLoader

31. The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! 


32.最大bug 点击目录播放视频然后立即返回出错

33.Android实现不重复启动APP的方法 37.android.view.WindowLeaked 的解决方案 38.防止过快点击造成多次事件
http://www.2cto.com/kf/201503/383912.html

39.微信支付
在安装了应用的手机上运行微信获取签名的应用程序
问题找到了,是我们在微信平台注册应用的时候应用签名没有填写对,相当于是keystore没有通过验证,

42:有的手机默认不可以使用使用DownloadManager

43.DownloadManager的使用

44. Android点击Notification之后回到当前正在运行的Activity

45极光推送 富文本

46 app打开,安装新包,打开,按home键 再打开app

47.动态修改View的属性

48.webview js代码调用Java代码


49.

使用ScrollView或ListView或PullToRefreshListView时,在魅族flyme OS上或中兴手机上会出现上下回弹效果,影响用户体验。

想去除这个回弹效果,只需要在对应控件的xml里配置一个属性即可。

  
  
android:overScrollMode="never"

50 Android ListView 单条刷新方法实践及原理解析
51. 滑动ViewPager引起swiperefreshlayout刷新的冲突
     
     
52.android 全局异常处理
     
     


53:   APP字体大小,不随系统的字体大小变化而变化的方法
     
     
     
     

数字1:启动Activity在这些类中是可以的,但是需要创建一个新的task。一般情况不推荐。

数字2:在这些类中去layout inflate是合法的,但是会使用系统默认的主题样式,如果你自定义了某些样式可能不会被使用。

数字3:在receiver为null时允许,在4.2或以上的版本中,用于获取黏性广播的当前值。(可以无视)

注:ContentProvider、BroadcastReceiver之所以在上述表格中,是因为在其内部方法中都有一个context用于使用。

55.ListView和RadioButton的结合

56.ListView和RadioButton结合
private int mCheckedPosition = -1;
mHolder.couponRBChecked.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
//重置,确保最多只有一项被选中,并且因为setChecked方法会触发onCheckedChanged的调用,所以只有在b为true,即RadioButton被选中的情况下才更新列表
if(b) {
mCheckedPosition = position;
notifyDataSetChanged();
}
}
});
mHolder.couponRBChecked.setChecked(mCheckedPosition == position);
        
        
          
          
57. 美团Android资源混淆保护实践
          
          


58.判断微信是否安装

59.webView不同手机适配问题
webSettings= webView.getSettings();
[xml]  view plain  copy
  1. webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);  

LayoutAlgorithm是一个枚举,用来控制html的布局,总共有三种类型:
NORMAL:正常显示,没有渲染变化。
SINGLE_COLUMN:把所有内容放到WebView组件等宽的一列中。   //这个是强制的,把网页都挤变形了
NARROW_COLUMNS:可能的话,使所有列的宽度不超过屏幕宽度。 //好像是默认的


60.沉浸式状态栏


61.webview 展示h5 的textarea 提示文字换行不同手机显示不同(三星手机浏览器可以换行,但是app内部不能换行)

62.webview url是302重定向的
存在问题及解决办法

63.用xml画一个带有渐变的loading圆环。
<?xml version="1.0" encoding="utf-8"?><shapexmlns:android="http://schemas.android.com/apk/res/android"android:shape="ring"android:thickness="2dp"android:useLevel="false"><gradientandroid:centerColor="#30ffffff"android:endColor="@android:color/white"android:gradientRadius="20dp"android:startColor="@color/transparent"android:type="sweep"/><sizeandroid:width="40dp"android:height="40dp"/></shape>

64. AlertDialog 在 Service 或者 Receiver 里等无关 Activity 的场景弹对话框
 public static class DialogContainerActivity extends AppCompatActivity{
        private static DialogContextProvider mContextProvider;
        public static void show(DialogContextProvider contextProvider){
            mContextProvider = contextProvider;Intent intent=new Intent(App.getInstance(), DialogContainerActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);App.getApp().startActivity(intent);}
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            mContextProvider.getContext(this);
        }
        public interface DialogContextProvider{
            void getContext(AppCompatActivity activity);
        }
    }


然后给它设置个透明的主题,再加点阴影效果。。。全局 Dialog 需要的时候用它的静态方法回调就可以在任意地方拿到 Activity 用来弹 Dialog 了
 DialogContainerActivity.show(activity -> {
            AlertDialog.Builder builder = new AlertDialog.Builder(activity);
            builder.setMessage("");
            builder.setPositiveButton();
            builder.setNegativeButton();// 监听 setOnDismissListener 关闭 ContainerActivity
            builder.show();
        });


65.  webview android.content.pm.PackageManager$NameNotFoundException


66.推送遇到的坑
a.小米手机设置自启动

67. facebook 登录遇到的坑

68.
StatusBar 图片占满标题栏需不需要设置透明??需要,设置透明有两种方法:


69 Android Studio Gradle Configuration with name 'default' not found
build.gradle为空

70 ListView 中包含EditText
https://github.com/laole918/EditTextInListAndRecyclerView
          
          
71 ProgressDialog全屏
          
          

72
彻底解决Android 应用方法数不能超过65K的问题
73.
Error:Execution failed for task ':app:processDebugManifest'.>Manifest merger failed : uses-sdk:minSdkVersion 4 cannot be smaller than version 7 declared in library [com.android.support:appcompat-v7:23.0.1]/Users/dom/Entwicklung/MacBookPro/git/GradleTest/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.1/AndroidManifest.xml
    Suggestion:use tools:overrideLibrary="android.support.v7.appcompat" to force usage

74.
          
          
<item name="colorAccent">@color/red</item>
<item name="colorPrimary">@color/red</item>
<item name="colorPrimaryDark">@color/red</item>
          
          

            
            
             
             
  • colorPrimary 对应ActionBar的颜色。

  • colorPrimaryDark对应状态栏的颜色

  • colorAccent 对应EditText编辑时、RadioButton选中、CheckBox等选中时的颜色、

75.Android出现:Your project path contains non-ASCII characters.
76. 极光推送崩溃问题
           
           

思路系统应用才会仅在 /vendor/lib, /system/lib 下寻找so,用户安装的应用会在/data/data/包名/lib 里面寻找so
还有一种情况是打了支持armeabi_v7架构的apk,但是并没有在相应的文件夹下放so文件,也会崩溃。

77.libpng error: Not a PNG file Error Showing In Android Studio
           
           


              
              
78.Error:Error converting bytecode to dex:
 into a non-jumbo instruction! Cannot merge new index 65536 into a non-jumbo instruction
           
           
                
                
                
                

                
                
79.MobclickAgent: onResume called before onPause 
OnResume或者OnPause方法调用重复(比如在XXXActivity里写了一遍,又在BaseActivity里写了一遍)



  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值