綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 小弟要研究產生QR code 的方法

[複製連結] 查看: 2282|回覆: 6|好評: 0
跳轉到指定樓層
樓主
u2460001 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2012-8-21 17:51

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
package android.demo.com;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.os.Bundle;
import android.text.InputType;
import android.util.DisplayMetrics;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class List extends Activity
{
  Bundle bundle;
  Intent intent;
  private Button Button1;
  private Button draw;
  private TextView SHOW;
  private SurfaceView mSurfaceView01;
  private SurfaceHolder mSurfaceHolder01;
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
   
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.list);
   
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
   
    mSurfaceView01 = (SurfaceView) findViewById(R.id.mSurfaceView1);
   
    mSurfaceHolder01 = mSurfaceView01.getHolder();
   
   
    Button1 = (Button) findViewById(R.id.button1);
    Button1.setOnClickListener(new Button.OnClickListener(){
        public void onClick(View a) {
                        // TODO Auto-generated method stub
                        ToNextActivity();
                        }
        });
   
    draw = (Button)findViewById(R.id.draw);
    draw.setOnClickListener(new Button.OnClickListener()
    {
      public void onClick(View arg0)
      {
              AndroidQREncode(SHOW.getText().toString(),100);
      }
    });
   
    SHOW = (TextView)findViewById(R.id.show);
    SharedPreferences temp_data = getSharedPreferences("list" ,0);
      String second21a = temp_data.getString("second211", "");
          String second21b = temp_data.getString("second212", "");
          String second21c = temp_data.getString("second213", "");
          String second21d = temp_data.getString("second214", "");
          String second21e = temp_data.getString("second215", "");
          String second21f = temp_data.getString("second216", "");
          String second21g = temp_data.getString("second217", "");
          String second21h = temp_data.getString("second218", "");
          
      String second22a = temp_data.getString("second221", "");
          String second22b = temp_data.getString("second222", "");
          String second22c = temp_data.getString("second223", "");
          String second22d = temp_data.getString("second224", "");
          
          String fourtha = temp_data.getString("fourth1", "");
          String fourthb = temp_data.getString("fourth2", "");
          String fourthc = temp_data.getString("fourth3", "");
          String fourthd = temp_data.getString("fourth4", "");
          String fourthe = temp_data.getString("fourth5", "");
          
          String thirda = temp_data.getString("third1", "");
          String thirdb = temp_data.getString("third2", "");
          String thirdc = temp_data.getString("third3", "");
          
          SHOW.setText(second21a + second21b + second21c + second21d + second21e + second21f +second21g + second21h + second22a + second22b + second22c + second22d + fourtha + fourthb + fourthc + fourthd + fourthe + thirda + thirdb + thirdc);
  }
  
  public void ToNextActivity(){
          Intent intent = new Intent();
          intent.setClass(this,MainActivity.class);
          startActivity(intent);
  }
  public void AndroidQREncode(String strEncoding, int qrcodeVersion)
  {
    try
    {
      com.swetake.util.Qrcode testQrcode = new com.swetake.util.Qrcode();
      testQrcode.setQrcodeErrorCorrect('M');
      testQrcode.setQrcodeEncodeMode('B');
      testQrcode.setQrcodeVersion(qrcodeVersion);
      byte[] bytesEncoding = strEncoding.getBytes("utf-8");
      
      if (bytesEncoding.length>0)
      {
        boolean[][] bEncoding = testQrcode.calQrcode(bytesEncoding);
        drawQRCode(bEncoding, getResources().getColor(R.drawable.black));
      }
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }
  private void drawQRCode(boolean[][] bRect, int colorFill)
  {
    int intPadding = 20;
    Canvas mCanvas01 = mSurfaceHolder01.lockCanvas();
    mCanvas01.drawColor(getResources().getColor(R.drawable.white));
    Paint mPaint01 = new Paint();
    mPaint01.setStyle(Paint.Style.FILL);
    mPaint01.setColor(colorFill);
    mPaint01.setStrokeWidth(1.0F);
    for (int i=0;i<bRect.length;i++)
    {
      for (int j=0;j<bRect.length;j++)
      {
        if (bRect[j])
        {
          mCanvas01.drawRect
          (
            new Rect
            (
              intPadding+j*3+2,
              intPadding+i*3+2,
              intPadding+j*3+2+3,
              intPadding+i*3+2+3
             ), mPaint01
          );
        }
      }
    }
    mSurfaceHolder01.unlockCanvasAndPost(mCanvas01);
  }
}

小第debug之後 顯示那一行有問題 卻不知道應該怎麼改 有大大可以幫忙嗎
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)

評分

參與人數 1幫助 +1 收起 理由
santaku + 1

查看全部評分

收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
hwj_c | 收聽TA | 只看該作者
發表於 2012-9-18 17:37
前輩您好厲害...

我只會用google chart API來產生QRCODE
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
不知火羽 | 收聽TA | 只看該作者
發表於 2012-9-24 19:29
如果只是那行錯掉 有一可能是找不到該物件
看你是否有把QRcode.jar匯進lib裡面
我也沒看到什麼大問題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
 樓主| u2460001 | 收聽TA | 只看該作者
發表於 2012-9-24 20:20

這個小弟 我解決了
確實就是少了那個jar包
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

5
a2261a22 | 收聽TA | 只看該作者
發表於 2012-11-26 22:20
不知道大大 ~ 可不可以借我完整的程式參考??
最近正也在研究這方面的問題~~
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

6
 樓主| u2460001 | 收聽TA | 只看該作者
發表於 2012-11-27 00:48
u2460001 發表於 2012-9-24 20:20
這個小弟 我解決了
確實就是少了那個jar包

沒錯 小弟我已經可以弄了
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

7
beckham0717tw | 收聽TA | 只看該作者
發表於 2012-12-3 09:07
近正也在研究這方面的問題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則