oppo r9s怎么设置和取消图形解锁?oppo r9s设置和取消图形解锁教程

 更新时间:2017年1月22日 11:04  点击:2360
本篇文章介绍的是oppo r9s如何设置和取消图形解锁的方法,有需要的小伙伴快来看一看吧。

问:oppo r9s怎么设置和取消图形解锁?

答:很多朋友都喜欢设置图形解锁,但是不知道怎么设置也不知道怎么取消,简单来讲一下。请进入设置---锁屏密码---划开进入后---选择无。这样以后就不会出现图形解锁了,如果想再把图形解锁弄回来也是按照这个步骤。(oppo  r9s手机专题)

oppo r9s怎么设置和取消图形解锁 三联

Android党都应该玩过一个叫吹裙子的游戏,就是需要一直监听用户的语音输入。这篇文章介绍了Android使用AudioRecord判断是否有音频输入的教程,有需要的同学可以参考一下本文

Android党都应该玩过一个叫吹裙子的游戏,这个游戏就是原理就是通过监听用户吹出的气的力度来决定如何把MM的裙子弄飞起来的,所以关键在于如何判断用户吹气的力度问题。现在公司刚好有这个需求要评估就是需要一直监听用户的语音输入,当在两秒内没有语音输入时候就暂停某项事情,有语音输入的时候就要继续做某件事。其实这两件事情的本质原理是一样的,就是通过这AudioRecord来处理用户输入的原始音频数据,从而计算出当前用户输入的音量大小来判断用户是否有语音输入。下面贴上一段代码用户可以自行研究。

 

 代码如下复制代码

publicstaticintcalculateVolume(byte[] var0,intvar1) {

    int[] var3 =null;

    intvar4 = var0.length;

    intvar2;

    if(var1 ==8) {

      var3 =newint[var4];

      for(var2 =0; var2 < var4; ++var2) {

        var3[var2] = var0[var2];

      }

    }elseif(var1 ==16) {

      var3 =newint[var4 /2];

      for(var2 =0; var2 < var4 /2; ++var2) {

        bytevar5 = var0[var2 *2];

        bytevar6 = var0[var2 *2+1];

        intvar13;

        if(var5<0) {

          var13 = var5 +256;

        }else{

          var13 = var5;

        }

        shortvar7 = (short)(var13 +0);

        if(var6<0) {

          var13 = var6 +256;

        }else{

          var13 = var6;

        }

        var3[var2] = (short)(var7 + (var13 <<8));

      }

    }

    int[] var8 = var3;

    if(var3 !=null&& var3.length !=0) {

      floatvar10 =0.0F;

      for(intvar11 =0; var11 < var8.length; ++var11) {

        var10 += (float)(var8[var11] * var8[var11]);

      }

      var10 /= (float)var8.length;

      floatvar12 =0.0F;

      for(var4 =0; var4 < var8.length; ++var4) {

        var12 += (float)var8[var4];

      }

      var12 /= (float)var8.length;

      var4 = (int)(Math.pow(2.0D, (double)(var1 -1)) -1.0D);

      doublevar14 = Math.sqrt((double)(var10 - var12 * var12));

      intvar9;

      if((var9 = (int)(10.0D * Math.log10(var14 *10.0D * Math.sqrt(2.0D) / (double)var4 +1.0D)))<0) {

        var9 =0;

      }

      if(var9 >10) {

        var9 =10;

      }

      returnvar9;

    }else{

      return0;

    }

}

 

上述方法的形参中的一个字节数组便是当前捕捉到用户输入的原始音频数据,第二个形参则是音频数据格式位PCM,16位每个样本,比如如果音频数据格式设为AudioFormat.ENCODING_PCM_16BIT,则参数传16。最后实现的效果就是如下:

01-12 18:54:17.222 E/recordtest(24249): no voice input
…………….
01-12 18:54:19.027 E/recordtest(24249): no voice input
01-12 18:54:19.067 E/recordtest(24249): no voice input
01-12 18:54:19.105 E/recordtest(24249): no voice input
01-12 18:54:19.145 E/recordtest(24249): no voice input
01-12 18:54:19.188 E/recordtest(24249): no voice input
01-12 18:54:19.227 E/recordtest(24249): no voice input
01-12 18:54:19.228 E/recordtest(24249): no voice input in 2 sec
01-12 18:54:19.269 E/recordtest(24249): no voice input
01-12 18:54:19.306 E/recordtest(24249): no voice input
01-12 18:54:19.345 E/recordtest(24249): no voice input
01-12 18:54:19.387 E/recordtest(24249): no voice input
01-12 18:54:19.427 E/recordtest(24249): no voice input
01-12 18:54:19.466 E/recordtest(24249): has voice input
01-12 18:54:19.505 E/recordtest(24249): has voice input
01-12 18:54:19.546 E/recordtest(24249): has voice input
01-12 18:54:19.586 E/recordtest(24249): has voice input
01-12 18:54:19.646 E/recordtest(24249): has voice input
01-12 18:54:19.686 E/recordtest(24249): has voice input
01-12 18:54:19.726 E/recordtest(24249): has voice input
01-12 18:54:19.766 E/recordtest(24249): has voice input

这篇文章介绍了Android中RecyclerView上拉下拉,分割线,多条目的实例代码,非常具有参考价值,有需要的朋友可以参考一下

 

 代码如下复制代码

//activity的xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

  xmlns:tools="http://schemas.android.com/tools"

  android:id="@+id/activity_main"

  android:layout_width="match_parent"

  android:layout_height="match_parent"

  tools:context="baway.com.cj.myrecyclerview2.MainActivity">

  <android.support.v4.widget.SwipeRefreshLayout

    android:id="@+id/swipeRefreshLayout"

    android:layout_width="match_parent"

    android:layout_above="@+id/progress"

    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView

      android:id="@+id/recyclerView"

      android:layout_width="match_parent"

      android:layout_height="match_parent">

    

  

  <ProgressBar

    android:id="@+id/progress"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_centerHorizontal="true"

    android:visibility="gone"

    android:layout_alignParentBottom="true"/>

item1的xml和item2的xml就一个背景颜色不同

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

  xmlns:tools="http://schemas.android.com/tools"

  android:id="@+id/activity_main"

  android:layout_width="match_parent"

  android:layout_height="match_parent"

  android:background="#f00000"

  tools:context="baway.com.cj.myrecyclerview2.MainActivity">

  <TextView

    android:id="@+id/name"

    android:layout_width="match_parent"

    android:layout_height="50dp"

    android:textSize="20sp"

    android:gravity="center"

    android:textColor="#00ff00"/>

item2

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

  xmlns:tools="http://schemas.android.com/tools"

  android:id="@+id/activity_main"

  android:layout_width="match_parent"

  android:layout_height="match_parent"

  android:background="#f000ff"

  tools:context="baway.com.cj.myrecyclerview2.MainActivity">

  <TextView

    android:id="@+id/name"

    android:layout_width="match_parent"

    android:layout_height="50dp"

    android:textSize="20sp"

    android:gravity="center"

    android:textColor="#00ff00"/>

//activity,有上啦下拉,添加分割线,

packagebaway.com.cj.myrecyclerview2;

importandroid.graphics.Color;

importandroid.os.Handler;

importandroid.support.v4.widget.SwipeRefreshLayout;

importandroid.support.v7.app.AppCompatActivity;

importandroid.os.Bundle;

importandroid.support.v7.widget.DefaultItemAnimator;

importandroid.support.v7.widget.LinearLayoutManager;

importandroid.support.v7.widget.RecyclerView;

importandroid.util.Log;

importandroid.view.View;

importandroid.widget.ProgressBar;

importandroid.widget.Toast;

importjava.util.ArrayList;

publicclassMainActivityextendsAppCompatActivity {

  privateRecyclerView recyclerView;

  privateMainAdapter mainAdapter;

  privateSwipeRefreshLayout swipeRefreshLayout;

  privateLinearLayoutManager linearLayoutManager;

  privateProgressBar progress;

  @Override

  protectedvoidonCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    initView();

    initData();

  }

  privatevoidinitView() {

    recyclerView = (RecyclerView)findViewById(R.id.recyclerView);

    swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);

    progress = (ProgressBar)findViewById(R.id.progress);

    linearLayoutManager =newLinearLayoutManager(this);

    recyclerView.setLayoutManager(linearLayoutManager);

    mainAdapter =newMainAdapter(this);

    mainAdapter.setOnClickListener(newMyItemOnClickListener() {

      @Override

      publicvoidonItemClick(View view,intposition) {

        Toast.makeText(MainActivity.this," "+position, Toast.LENGTH_SHORT).show();

      }

    });

    recyclerView.setAdapter(mainAdapter);

    recyclerView.addItemDecoration(newMyItemDecoration());

    recyclerView.setItemAnimator(newDefaultItemAnimator());

    swipeRefreshLayout.setColorSchemeColors(Color.RED,Color.GREEN,Color.BLUE);

    swipeRefreshLayout.setProgressViewOffset(true,0,200);

    swipeRefreshLayout.setOnRefreshListener(newSwipeRefreshLayout.OnRefreshListener() {

      @Override

      publicvoidonRefresh() {

        newHandler().postDelayed(newRunnable() {

          @Override

          publicvoidrun() {

            swipeRefreshLayout.setRefreshing(false);

          }

        },3000);

      }

    });

    recyclerView.addOnScrollListener(newRecyclerView.OnScrollListener() {

      @Override

      publicvoidonScrolled(RecyclerView recyclerView,intdx,intdy) {

        super.onScrolled(recyclerView, dx, dy);

        intlastVisibleItemPosition = linearLayoutManager.findLastVisibleItemPosition();

        intitemCount = linearLayoutManager.getItemCount();

        if(lastVisibleItemPosition +1>= itemCount && dy >0) {

          progress.setVisibility(View.VISIBLE);

          newHandler().postDelayed(newRunnable() {

            @Override

            publicvoidrun() {

              progress.setVisibility(View.GONE);

            }

          },3000);

        }

      }

      @Override

      publicvoidonScrollStateChanged(RecyclerView recyclerView,intnewState) {

        super.onScrollStateChanged(recyclerView, newState);

      }

    });

  }

  privatevoidinitData() {

    ArrayListstrings =newArrayList<>();

    for(inti =0; i<50; i++) {

      strings.add("name "+i);

    }

    mainAdapter.setData(strings);

    mainAdapter.notifyDataSetChanged();

  }

}

//adpter有多条目展示

packagebaway.com.cj.myrecyclerview2;

importandroid.content.Context;

importandroid.support.v7.widget.RecyclerView;

importandroid.view.LayoutInflater;

importandroid.view.View;

importandroid.view.ViewGroup;

importandroid.widget.TextView;

importjava.util.ArrayList;

/**

 * Created by cj on 2017/1/12.

 */

publicclassMainAdapterextendsRecyclerView.Adapter {

  privateContext context;

  privateArrayListdatas =newArrayList<>();

  privateMyItemOnClickListener myItemOnClickListener;

  privatefinalintTYPE_0 =0;

  privatefinalintTYPE_1 =1;

  publicMainAdapter(Context context) {

    this.context = context;

  }

  @Override

  publicintgetItemViewType(intposition) {

    if(position %3==0) {

      returnTYPE_0;

    }else{

      returnTYPE_1;

    }

  }

  publicvoidsetOnClickListener(MyItemOnClickListener onClickListener) {

    this.myItemOnClickListener = onClickListener;

  }

  @Override

  publicRecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent,intviewType) {

    if(viewType == TYPE_0) {

      View inflate = LayoutInflater.from(context).inflate(R.layout.item_main,null);

      returnnewMyViewHolder(inflate);

    }else{

      View inflate = LayoutInflater.from(context).inflate(R.layout.item_main2,null);

      returnnewMyViewHolder2(inflate);

    }

  }

  @Override

  publicvoidonBindViewHolder(RecyclerView.ViewHolder holder,finalintposition) {

    if(getItemViewType(position) == TYPE_0) {

      MyViewHolder myViewHolder = (MyViewHolder)holder;

      myViewHolder.name.setText(datas.get(position));

      myViewHolder.name.setOnClickListener(newView.OnClickListener() {

        @Override

        publicvoidonClick(View v) {

          myItemOnClickListener.onItemClick(v,position);

        }

      });

    }else{

      MyViewHolder2 myViewHolder = (MyViewHolder2)holder;

      myViewHolder.name.setText(datas.get(position));

      myViewHolder.name.setOnClickListener(newView.OnClickListener() {

        @Override

        publicvoidonClick(View v) {

          myItemOnClickListener.onItemClick(v,position);

        }

      });

    }

  }

  @Override

  publicintgetItemCount() {

    returndatas.size();

  }

  publicvoidsetData(ArrayListdata) {

    if(data ==null) {

      return;

    }

    this.datas.addAll(data);

  }

  publicclassMyViewHolderextendsRecyclerView.ViewHolder{

    publicTextView name;

    publicMyViewHolder(View itemView) {

      super(itemView);

      name = (TextView) itemView.findViewById(R.id.name);

    }

  }

  publicclassMyViewHolder2extendsRecyclerView.ViewHolder{

    publicTextView name;

    publicMyViewHolder2(View itemView) {

      super(itemView);

      name = (TextView) itemView.findViewById(R.id.name);

    }

  }

}

//自定义分割线继承系统的 RecyclerView.ItemDecoration

packagebaway.com.cj.myrecyclerview2;

importandroid.graphics.Canvas;

importandroid.graphics.Color;

importandroid.graphics.Paint;

importandroid.graphics.Rect;

importandroid.support.v7.widget.RecyclerView;

importandroid.util.Log;

importandroid.view.View;

/**

 * Created by cj on 2017/1/12.

 */

publicclassMyItemDecorationextendsRecyclerView.ItemDecoration {

  privatePaint paint;

  publicMyItemDecoration() {

    paint =newPaint();

    paint.setColor(Color.BLUE);

  }

  @Override

  publicvoidonDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {

    super.onDraw(c, parent, state);

    //c.drawCircle(300,300,300,paint);

    intchildCount = parent.getChildCount();

    for(inti =0; i < childCount; i++) {

      View childAt = parent.getChildAt(i);

      c.drawRect(childAt.getLeft(),childAt.getBottom(),childAt.getWidth()+childAt.getLeft(),childAt.getBottom()+5,paint);

    }

  }

  @Override

  publicvoidonDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {

    super.onDrawOver(c, parent, state);

//    int childCount = parent.getChildCount();

//    for (int i = 0; i < childCount; i++) {

//      View childAt = parent.getChildAt(i);

//      c.drawRect(childAt.getLeft(),childAt.getTop(),childAt.getWidth()+childAt.getLeft(),childAt.getBottom()+5,paint);

//    }

  }

  @Override

  publicvoidgetItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {

    super.getItemOffsets(outRect, view, parent, state);

    outRect.set(20,0,20,5);

  }

}

 

[!--infotagslink--]

相关文章