public class AndroidBarcodeView extends ImageView {
public AndroidBarcodeView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
try {
testQRCode(canvas);
} catch (Exception e) {
e.printStackTrace();
}
}
private static void testQRCode(Canvas canvas) throws Exception {
QRCode barcode = new QRCode();
/*
* QRCode Valid data char set: numeric data (digits 0 - 9); alphanumeric
* data (digits 0 - 9; upper case letters A -Z; nine other characters:
* space, $ % * + - ./:); byte data (default: ISO/IEC 8859-1); Kanji
* characters
*/
// BIZCARD:N:Kelly;X:Goto;T:Design Ethnographer;C:gotomedia LLC;A:2169
// Folsom Street
// M302;B:4158647007;F:4158647004;M:4159907005;E:[email protected];;
// barcode.setData("BIZCARD:N:Kelly;X:Goto;T:Design Ethnographer;C:gotomedia LLC;A:2169 Folsom Street M302;B:4158647007;F:4158647004;M:4159907005;E:[email protected];;");
barcode.setData("StudentId:11;SectionId:A2;TimeStamp:20-04-2015 12:18PM;;");
barcode.setDataMode(QRCode.M_AUTO);
barcode.setVersion(1);
barcode.setEcl(QRCode.ECL_L);
// if you want to encode GS1 compatible QR Code, you need set FNC1 mode
// to IBarcode.FNC1_ENABLE
barcode.setFnc1Mode(IBarcode.FNC1_NONE);
// Set the processTilde property to true, if you want use the tilde
// character "~" to specify special characters in the input data.
// Default is false.
// 1-byte character: ~ddd (character value from 0 ~ 255)
// ASCII (with EXT): from ~000 to ~255
// 2-byte character: ~6ddddd (character value from 0 ~ 65535)
// Unicode: from ~600000 to ~665535
// ECI: from ~7000000 to ~7999999
// SJIS: from ~9ddddd (Shift JIS 0x8140 ~ 0x9FFC and 0xE040 ~ 0xEBBF)
barcode.setProcessTilde(false);
// unit of measure for X, Y, LeftMargin, RightMargin, TopMargin,
// BottomMargin
barcode.setUom(IBarcode.UOM_PIXEL);
// barcode module width in pixel
barcode.setX(3f);
barcode.setLeftMargin(50f);
barcode.setRightMargin(50f);
barcode.setTopMargin(50f);
barcode.setBottomMargin(50f);
// barcode image resolution in dpi
barcode.setResolution(72);
// barcode bar color and background color in Android device
barcode.setForeColor(AndroidColor.black);
barcode.setBackColor(AndroidColor.white);
/*
* specify your barcode drawing area
*/
RectF bounds = new RectF(0, 0, 0, 0);
barcode.drawBarcode(canvas, bounds);
}
}
с помощью этого я в состоянии генерировать штрих-код:как отобразить Canvas в текущем виде активности изображения в андроиде
Это мой код:
Imageview img;
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (v.getId() == R.id.textView3) {
AndroidBarcodeView view = new AndroidBarcodeView(
StudentManinPage.this);
setContentView(view);
}
}
, где я должен отобразить штрих-код на Imageview Но когда я нажимаю на создание штрих-кода, тогда он отображает штрих-код, но он не отображается в текущем режиме просмотра изображения, который отображается в другом представлении, пожалуйста, помогите мне отобразить текущую активность в режиме просмотра изображений. У меня есть img-изображение.
RectF границы = новый RectF (0, 0, 0, 0); попробуйте дать реальный размер для этого. RectF bounds = new RectF (0, 0, canvas.getWidth(), canvas.getHeight()); И убедитесь, что ваш ImageView не имеет нулевого размера. –
этот код мы должны ввести Actvity na? и как отобразить его в imageview, пожалуйста, Edid мой код, так что ic implemnt – user1531170
@ user1531179 эта строка кода находится в вашем методе testQRCode. И вы должны заменить эту строку. –