Прежде всего, я храню данные в двумерном массиве, и код работает нормально.Код показан ниже:
for(int a = 0; a < bitmap1.getWidth(); a++){
// ------ This is X
for(int b = 0; b < bitmap1.getHeight()-1; b++){
// ---------- This is Y
intArray1[a][b] = Integer.toHexString(bitmap1.getPixel(a,b));
intArray2[a][b] = Integer.toHexString(bitmap2.getPixel(a,b));
intArray3[a][b] = Integer.toHexString(bitmap3.getPixel(a,b));
intArray4[a][b] = Integer.toHexString(bitmap4.getPixel(a,b));
intArray5[a][b] = Integer.toHexString(bitmap5.getPixel(a,b));
intArray6[a][b] = Integer.toHexString(bitmap6.getPixel(a,b));
intArray7[a][b] = Integer.toHexString(bitmap7.getPixel(a,b));
intArray8[a][b] = Integer.toHexString(bitmap8.getPixel(a,b));
}
}//end of Nested FOR
Затем я использую nested for loops
, чтобы изменить данные с arrays
, как указано выше.Тем не менее, это просто 1st array
из моего 8 array
.Есть ли другой способ уменьшить количество дублирующегося кода вместо копирования того же кода, как показано ниже, и выполнить преобразование из 1st array
в 8 array
?
int [][] arrayOneZero = new int [array1.length][array1.length];
for(int a = 0; a < array1.length; a++){
for(int b = 0; b < array1.length-1; b++){
if(array1[a][b].equals("ffffffff")){
//This is White
arrayOneZero[a][b] = 1;
}else if(array1[a][b].equals("ff000000")){
//This is Black
arrayOneZero[a][b] = 0;
}else if(array1[a][b].equals("00000000")){
//THis is Black
arrayOneZero[a][b] = 0;
}
}
После этого я хочуполучить данные из метода, и результат равен 0, так как я уверен, что результат будет 1 или 0. Но я не знаю, как записать данные из двумерного массива в массив, поскольку приведенный ниже код определенно неверен.
int [][] arrayReturned1 = getArrayText(intArray1);
int [] colorValue = new int[bitmap1.getWidth()*bitmap1.getHeight()];
for(int a = 0; a < bitmap1.getWidth(); a++) {
for(int b = 0; b < bitmap1.getHeight()-1; b++) {
arrayReturned1[a][b] = colorValue[a];
}
}
Вопрос отредактирован, но проблема все еще остается.