1、当 屏幕旋转 或者 程序长时间置于后台,程序重新启动的时候,在activity中的fragment会重新绘制吗?如果有,如何处理?
答:fragment是依赖activity的,当activity重新启动,fragment也会重新绘制,从而导致多次绘制。
答:fragment是依赖activity的,当activity重新启动,fragment也会重新绘制,从而导致多次绘制。
解决方案:onCreate(Bundle savedInstanceState)中判断savedInstanceState是否为null。如果为null,则重新创建fragment。
2、使用aapt dump badging *.apk可以查看这个apk文件的程序名、包名、所用的sdk,程序版本以及权限信息等等。
3、使用系统alertDialog想修改标题问题的颜色。
TextView titleTxt= (TextView)dialog.findViewById(mContext.getResources() .getIdentifier( "alertTitle", "id", "android" )); titleTxt.setTextColor(0xff3D7DC4);
4、listview item上包含EditText控件,在item上设置了android:descendantFocusability="blocksDescendants"(使子控件得不到焦点)
之后,edittext始终不能编辑。直到看到【此博客】。
5、//播放动画View anview = view.findViewById(R.id.view); anview.setBackgroundResource(R.drawable.animplay); AnimationDrawable drawable = (AnimationDrawable) anview.getBackground(); drawable.start();
其中R.drawable.animplay.xml为放在drawable目录下的动画(如下)。6、仿微信语音功能中,根据音量大小,voice的动画,可根据振幅获取相应的图片,进行显示。<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@mipmap/v_anim1" android:duration="300"/> <item android:drawable="@mipmap/v_anim2" android:duration="300"/> <item android:drawable="@mipmap/v_anim3" android:duration="300"/> </animation-list>
(1)根据振幅获取level:public int getVoiceLevel(int max) { try { if (isPrepared) { /** * recorder.getMaxAmplitude():振幅 1-32767 * 除以32768得到0到1的值 * 然后乘以 max 【7】得到0到6之间的值 * 再加1 得到1到7 */ return max * recorder.getMaxAmplitude() / 32768 + 1; } } catch (Exception e) { e.printStackTrace(); } return 1; }
(2)根据level显示对应图片:
7、设置app内字体不受手机设置字体大小的影响。可通过BaseActivity中设置如下代码:<pre name="code" class="java"> public void updateVoiceLevel(int level) { if (mDialog != null && mDialog.isShowing()) { // switch (level) { // case 1: // iv_voice.setImageResource(R.mipmap.v1); // break; // case 2: // iv_voice.setImageResource(R.mipmap.v2); // break; // case 3: // iv_voice.setImageResource(R.mipmap.v3); // break; // case 4: // iv_voice.setImageResource(R.mipmap.v4); // break; // case 5: // iv_voice.setImageResource(R.mipmap.v5); // break; // case 6: // iv_voice.setImageResource(R.mipmap.v6); // break; // case 7: // iv_voice.setImageResource(R.mipmap.v7); // break; // } int resId = mContext.getResources().getIdentifier("v" + level, "mipmap", mContext.getPackageName()); iv_voice.setImageResource(resId); } }
<pre name="code" class="java"> @Override public Resources getResources() { Resources res = super.getResources(); Configuration config = new Configuration(); config.setToDefaults(); res.updateConfiguration(config, res.getDisplayMetrics()); return res; }