扫码使很多应用都有的一个功能,公司刚好需要一个扫码功能就写了个Demo,希望对需要的人有用。先上图:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context="littlestory.com.demo.MainActivity"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="scan" android:text="Start Scan" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp" android:text="Result:" /> <TextView android:id="@+id/tv_result" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp" /> <EditText android:id="@+id/tv_text" android:hint="Input" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Make QRCode" android:onClick="make"/> <CheckBox android:id="@+id/cb_logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Logo"/> <ImageView android:id="@+id/iv_result" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@mipmap/ic_launcher"/> </LinearLayout>
public class MainActivity extends Activity { private TextView mTvResult; private EditText mInput; private ImageView mResult; private CheckBox mLogo; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTvResult= (TextView) findViewById(R.id.tv_result); mInput= (EditText) findViewById(R.id.tv_text); mResult= (ImageView) findViewById(R.id.iv_result); mLogo= (CheckBox) findViewById(R.id.cb_logo); } public void scan(View view){ startActivityForResult(new Intent(MainActivity.this, CaptureActivity.class),0); } public void make(View view){ String input=mInput.getText().toString(); if(input.equals("")){ Toast.makeText(MainActivity.this,"输入不能为空",Toast.LENGTH_LONG).show(); }else { Bitmap bitmap= EncodingUtils.createQRCode(input,500,500,mLogo.isChecked()? BitmapFactory.decodeResource(getResources(),R.mipmap.b):null); mResult.setImageBitmap(bitmap); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(resultCode==RESULT_OK){ Bundle bundle=data.getExtras(); String result=bundle.getString("result"); mTvResult.setText(result); } } }