Add Data Matrix code (Beta) and add some features to sample app

This commit is contained in:
MOATAZ IBRAHIM ELDESOUKI TAWFEEK MOHAMMED 2017-01-20 09:40:49 +02:00
parent 82ab3315cf
commit 67ee970ce5
15 changed files with 42 additions and 10 deletions

View File

@ -20,10 +20,12 @@ import com.pureix.encodinganddecodinglib.EncodingZxing;
public class MainActivity extends AppCompatActivity public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener { implements NavigationView.OnNavigationItemSelectedListener {
private static final int QR_CODE = 0; private static final int QR_CODE = 0;
private static final int PDF_417 = 1; private static final int PDF_417 = 1;
private static final int DATA_MATRIX = 2;
private static final int AZTEC = 3;
private int currentEncoding = 0; private int currentEncoding = 2;
ImageView imageView; ImageView imageView;
@ -53,6 +55,18 @@ public class MainActivity extends AppCompatActivity
.encodeToPDF417("Encoding with zxing", 500, Color.BLACK, Color.WHITE)); .encodeToPDF417("Encoding with zxing", 500, Color.BLACK, Color.WHITE));
break; break;
} }
case DATA_MATRIX:
{
imageView.setImageBitmap(EncodingZxing
.encodeToDataMatrix("Encoding with zxing", 26, 12));
break;
}
case AZTEC:
{
imageView.setImageBitmap(EncodingZxing
.encodeToPDF417("Encoding with zxing", 500, Color.BLACK, Color.WHITE));
break;
}
default: default:
{ {
Snackbar.make(view, "Error", Snackbar.LENGTH_LONG) Snackbar.make(view, "Error", Snackbar.LENGTH_LONG)
@ -117,10 +131,10 @@ public class MainActivity extends AppCompatActivity
currentEncoding = QR_CODE; currentEncoding = QR_CODE;
} else if (id == R.id.navPDF417) { } else if (id == R.id.navPDF417) {
currentEncoding = PDF_417; currentEncoding = PDF_417;
} else if (id == R.id.nav_slideshow) { } else if (id == R.id.navDataMatrix) {
currentEncoding = DATA_MATRIX;
} else if (id == R.id.nav_manage) { } else if (id == R.id.nav_manage) {
currentEncoding = AZTEC;
} }
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);

View File

@ -14,9 +14,10 @@
tools:showIn="@layout/app_bar_main"> tools:showIn="@layout/app_bar_main">
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
app:srcCompat="@drawable/ic_menu_gallery" app:srcCompat="@drawable/ic_menu_gallery"
android:scaleType="fitCenter"
android:id="@+id/imageView" android:id="@+id/imageView"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_centerHorizontal="true" /> android:layout_centerHorizontal="true" />

View File

@ -11,9 +11,9 @@
android:icon="@android:drawable/ic_dialog_dialer" android:icon="@android:drawable/ic_dialog_dialer"
android:title="PDF 417" /> android:title="PDF 417" />
<item <item
android:id="@+id/nav_slideshow" android:id="@+id/navDataMatrix"
android:icon="@android:drawable/ic_dialog_dialer" android:icon="@android:drawable/ic_dialog_dialer"
android:title="Slideshow" /> android:title="Data Matrix" />
<item <item
android:id="@+id/nav_manage" android:id="@+id/nav_manage"
android:icon="@android:drawable/ic_dialog_dialer" android:icon="@android:drawable/ic_dialog_dialer"

View File

@ -6,6 +6,7 @@ import android.graphics.Color;
import com.google.zxing.BarcodeFormat; import com.google.zxing.BarcodeFormat;
import com.google.zxing.WriterException; import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix; import com.google.zxing.common.BitMatrix;
import com.google.zxing.datamatrix.DataMatrixWriter;
import com.google.zxing.pdf417.PDF417Writer; import com.google.zxing.pdf417.PDF417Writer;
import com.google.zxing.qrcode.QRCodeWriter; import com.google.zxing.qrcode.QRCodeWriter;
@ -108,6 +109,22 @@ public class EncodingZxing
return bmp; return bmp;
} }
public static Bitmap encodeToDataMatrix(String text, int width, int height){
DataMatrixWriter writer = new DataMatrixWriter();
BitMatrix matrix = null;
matrix = writer.encode(text, BarcodeFormat.DATA_MATRIX, width, height);
Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
for (int x = 0; x < width; x++){
for (int y = 0; y < height; y++){
bmp.setPixel(x, y, matrix.get(x,y) ? Color.BLACK : Color.WHITE);
}
}
return bmp;
}
public static Bitmap encodeToQrCode(String text, int width, int height, public static Bitmap encodeToQrCode(String text, int width, int height,
int dotColor, int backgroundColor){ int dotColor, int backgroundColor){
QRCodeWriter writer = new QRCodeWriter(); QRCodeWriter writer = new QRCodeWriter();