Cube U30GT2 Android4.2 Tablet Firmware

U30GT2 Android4.2 Tablet Firmware 

Chipset : Rockchip
Flashing Tool : RKBatchTool


CUBE U35GTS(wifi module RK903) 4.2 Tablet Firmware

CUBE U35GTS(wifi module RK903) 4.2 Tablet Firmware 

Chipset :Rockchip
Flashing Tool :RKBatchTool


CUBE U25GT Dual Core Tablet Official Firmware


 CUBE U25GT Dual Core Tablet Official Firmware 
Chipset: (Rockchip) 
Flashing Tool : RKBatchTool




ColorMatrix.setConcat() to combine ColorMatrixes

The exercise "Set the rotation on a color axis of Bitmap with ColorMatrix" create rotated ColorMatrix for one color only, not all. We can create ColorMatrix from more than one by calling ColorMatrix.setConcat().

ColorMatrix.setConcat() to combine ColorMatrixs


package com.example.androiddrawbitmap;

import java.io.FileNotFoundException;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Paint;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

public class MainActivity extends Activity {

Button btnLoadImage;
ImageView imageResult;
SeekBar rotBarRed, rotBarGreen, rotBarBlue;
TextView rotText;

final int RQS_IMAGE1 = 1;

Uri source;
Bitmap bitmapMaster;
Canvas canvasMaster;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

btnLoadImage = (Button) findViewById(R.id.loadimage);
imageResult = (ImageView) findViewById(R.id.result);

btnLoadImage.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
Intent intent = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, RQS_IMAGE1);
}
});

rotText = (TextView) findViewById(R.id.textRot);
rotBarRed = (SeekBar) findViewById(R.id.rotbarred);
rotBarGreen = (SeekBar) findViewById(R.id.rotbargreen);
rotBarBlue = (SeekBar) findViewById(R.id.rotbarblue);
rotBarRed.setOnSeekBarChangeListener(seekBarChangeListener);
rotBarGreen.setOnSeekBarChangeListener(seekBarChangeListener);
rotBarBlue.setOnSeekBarChangeListener(seekBarChangeListener);

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

if (resultCode == RESULT_OK) {
switch (requestCode) {
case RQS_IMAGE1:
source = data.getData();

try {
bitmapMaster = BitmapFactory
.decodeStream(getContentResolver().openInputStream(
source));

rotBarRed.setProgress(0);
rotBarGreen.setProgress(0);
rotBarBlue.setProgress(0);

loadBitmapRotate();

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

break;
}
}
}

OnSeekBarChangeListener seekBarChangeListener = new OnSeekBarChangeListener() {

@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub

}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub

}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {
loadBitmapRotate();
}
};

private void loadBitmapRotate() {
if (bitmapMaster != null) {

float rotRed = (float) rotBarRed.getProgress();
float rotGreen = (float) rotBarGreen.getProgress();
float rotBlue = (float) rotBarBlue.getProgress();

rotText.setText("setRotate: " + String.valueOf(rotRed) + ", "
+ String.valueOf(rotGreen) + ", " + String.valueOf(rotBlue));

Bitmap bitmapColorScaled = updateRot(bitmapMaster, rotRed,
rotGreen, rotBlue);

imageResult.setImageBitmap(bitmapColorScaled);
}
}

private Bitmap updateRot(Bitmap src, float degreesRed, float degreesGreen,
float degreesBlue) {

int w = src.getWidth();
int h = src.getHeight();

Bitmap bitmapResult = Bitmap
.createBitmap(w, h, Bitmap.Config.ARGB_8888);
Canvas canvasResult = new Canvas(bitmapResult);
Paint paint = new Paint();

ColorMatrix colorMatrixRed = new ColorMatrix();
colorMatrixRed.setRotate(0, degreesRed);
ColorMatrix colorMatrixGreen = new ColorMatrix();
colorMatrixGreen.setRotate(1, degreesGreen);
ColorMatrix colorMatrixBlue = new ColorMatrix();
colorMatrixBlue.setRotate(2, degreesBlue);
ColorMatrix colorMatrixConcat = new ColorMatrix();
colorMatrixConcat.setConcat(colorMatrixRed, colorMatrixGreen);
colorMatrixConcat.setConcat(colorMatrixConcat, colorMatrixBlue);

ColorMatrixColorFilter filter = new ColorMatrixColorFilter(
colorMatrixConcat);
paint.setColorFilter(filter);
canvasResult.drawBitmap(src, 0, 0, paint);

return bitmapResult;
}
}


<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:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:autoLink="web"
android:text="http://android-er.blogspot.com/"
android:textStyle="bold" />

<Button
android:id="@+id/loadimage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Load Image 1" />

<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >

<ImageView
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:background="@android:color/background_dark"
android:scaleType="centerInside" />

<TextView
android:id="@+id/textRot"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ColorMatrix Rotate" />

<SeekBar
android:id="@+id/rotbarred"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="360"
android:progress="0" />
<SeekBar
android:id="@+id/rotbargreen"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="360"
android:progress="0" />
<SeekBar
android:id="@+id/rotbarblue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="360"
android:progress="0" />
</LinearLayout>
</ScrollView>

</LinearLayout>


download filesDownload the files.

download filesDownload and try the APK.



more: Something about processing images in Android

Scale color and alpha of colormatrix with setScale()

Example of using ColorMatrix.setScale(float rScale, float gScale, float bScale, float aScale).

Example of using ColorMatrix.setScale()

package com.example.androiddrawbitmap;

import java.io.FileNotFoundException;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Paint;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

public class MainActivity extends Activity {

Button btnLoadImage;
ImageView imageResult;
SeekBar scaleBarRed, scaleBarGreen, scaleBarBlue, scaleBarAlpha;
TextView cmScaleText;

final int RQS_IMAGE1 = 1;

Uri source;
Bitmap bitmapMaster;
Canvas canvasMaster;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

btnLoadImage = (Button) findViewById(R.id.loadimage);
imageResult = (ImageView) findViewById(R.id.result);

btnLoadImage.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
Intent intent = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, RQS_IMAGE1);
}
});

cmScaleText = (TextView) findViewById(R.id.textCMScale);
scaleBarRed = (SeekBar) findViewById(R.id.scalebarred);
scaleBarGreen = (SeekBar) findViewById(R.id.scalebargreen);
scaleBarBlue = (SeekBar) findViewById(R.id.scalebarblue);
scaleBarAlpha = (SeekBar) findViewById(R.id.scalebaralpha);
scaleBarRed.setOnSeekBarChangeListener(seekBarChangeListener);
scaleBarGreen.setOnSeekBarChangeListener(seekBarChangeListener);
scaleBarBlue.setOnSeekBarChangeListener(seekBarChangeListener);
scaleBarAlpha.setOnSeekBarChangeListener(seekBarChangeListener);

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

if (resultCode == RESULT_OK) {
switch (requestCode) {
case RQS_IMAGE1:
source = data.getData();

try {
bitmapMaster = BitmapFactory
.decodeStream(getContentResolver().openInputStream(
source));

scaleBarRed.setProgress(100);
scaleBarGreen.setProgress(100);
scaleBarBlue.setProgress(100);
scaleBarAlpha.setProgress(100);

loadBitmapScaleColor();

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

break;
}
}
}

OnSeekBarChangeListener seekBarChangeListener =
new OnSeekBarChangeListener() {

@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub

}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub

}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {
loadBitmapScaleColor();
}
};

private void loadBitmapScaleColor() {
if (bitmapMaster != null) {

int progressScaleRed = scaleBarRed.getProgress();
int progressScaleGreen = scaleBarGreen.getProgress();
int progressScaleBlue = scaleBarBlue.getProgress();
int progressScaleAlpha = scaleBarAlpha.getProgress();

float scaleRed = (float) progressScaleRed/100;
float scaleGreen = (float) progressScaleGreen/100;
float scaleBlue = (float) progressScaleBlue/100;
float scaleAlpha = (float) progressScaleAlpha/100;

cmScaleText.setText("setScale: "
+ String.valueOf(scaleRed) + ", "
+ String.valueOf(scaleGreen) + ", "
+ String.valueOf(scaleBlue) + ", "
+ String.valueOf(scaleAlpha));

Bitmap bitmapColorScaled = updateScale(
bitmapMaster,
scaleRed,
scaleGreen,
scaleBlue,
scaleAlpha);

imageResult.setImageBitmap(bitmapColorScaled);
}
}

private Bitmap updateScale(Bitmap src, float rScale, float gScale,
float bScale, float aScale) {

int w = src.getWidth();
int h = src.getHeight();

Bitmap bitmapResult = Bitmap
.createBitmap(w, h, Bitmap.Config.ARGB_8888);
Canvas canvasResult = new Canvas(bitmapResult);
Paint paint = new Paint();
ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.setScale(rScale, gScale, bScale, aScale);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(colorMatrix);
paint.setColorFilter(filter);
canvasResult.drawBitmap(src, 0, 0, paint);

return bitmapResult;
}
}


<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:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:autoLink="web"
android:text="http://android-er.blogspot.com/"
android:textStyle="bold" />

<Button
android:id="@+id/loadimage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Load Image 1" />

<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >

<ImageView
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:background="@drawable/ic_launcher"
android:scaleType="centerInside" />

<TextView
android:id="@+id/textCMScale"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ColorMatrix Scale" />

<SeekBar
android:id="@+id/scalebarred"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="200"
android:progress="100" />
<SeekBar
android:id="@+id/scalebargreen"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="200"
android:progress="100" />
<SeekBar
android:id="@+id/scalebarblue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="200"
android:progress="100" />
<SeekBar
android:id="@+id/scalebaralpha"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="200"
android:progress="100" />
</LinearLayout>
</ScrollView>

</LinearLayout>


download filesDownload the files.

download filesDownload and try the APK.



more: Something about processing images in Android

F2S 4.0.4 firmware 20121129.1.1.1 Tablet Firmware

F2S 4.0.4 firmware 20121129.1.1.1



F2S (A13) 4.0.4 firmware 20121129.1.1.1 Tablet Firmware

F2S (A13) 4.0.4 firmware 20121129.1.1.1



The CPU is A13 with no HDMI, pad use this firmware.

Please rename the download firmware in English, Otherwise , the upgrade

will failed. Jelly Bean4.1.1 firmware is editing at present.F9 series

Jelly Bean 4.1.1 firmware is open. Other models will gradually open

after firmware testing stability