Babty
Почетный гость
Помогите , пожалуйста решить
Нужно что бы этой проблемы не было, хочу сделать так чтобы при сохрании , arraylist не выводил в таком порядке [1,2,3,4, ...]
Чтоб выводил по отдельности
Как показано на картинке
Спасибо
Нужно что бы этой проблемы не было, хочу сделать так чтобы при сохрании , arraylist не выводил в таком порядке [1,2,3,4, ...]
Чтоб выводил по отдельности
Как показано на картинке
Спасибо
Код:
public class PinView extends SubsamplingScaleImageView {
private ArrayList<PointF> sPin = new ArrayList<>();
private ArrayList<String> pinNames = new ArrayList<String>();
private Bitmap pinBitmap;
private static int itemIndex;
int i = 0;
public PinView(Context context) {
this(context, null);
itemIndex = 0;
}
public PinView(Context context, AttributeSet attr) {
super(context,attr);
initialise();
}
public String getItem() {
if (itemIndex >= pinNames.size()) {
return null;
}
return pinNames.get(itemIndex);
}
public String getNextItem() {
itemIndex ++;
return getItem();
}
public boolean setPin(PointF sPin, String name, boolean isShowOrAdd) {
if (pinNames.contains(name)) {
return false;
} else {
// isShowOrAdd is used only for If we want to add only one marker /only shows markers on Image
if (isShowOrAdd) {
this.sPin.add(sPin);
pinNames.add(name);
initialise();
invalidate();
return true;
} else {
if (pinNames.size() < 1) {
this.sPin.add(sPin);
pinNames.add(name);
initialise();
invalidate();
return true;
} else {
return false;
}
}
}
}
public PointF getPin(String name) {
return sPin.get(pinNames.indexOf(name));
}
public boolean removePin(String name) {
if (pinNames.contains(name)) {
sPin.remove(pinNames.indexOf(name));
pinNames.remove(name);
return true;
} else {
return false;
}
}
public ArrayList<String> getPinNames() {
return pinNames;
}
private void initialise() {
float density = getResources().getDisplayMetrics().densityDpi;
pinBitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.pin);
float w = (density / 1000f) * pinBitmap.getWidth();
float h = (density / 1000f) * pinBitmap.getHeight();
pinBitmap = Bitmap.createScaledBitmap(pinBitmap, (int) w, (int) h, true);
}
ArrayList<Model> canvasArray = new ArrayList();
@Override
protected void onDraw(Canvas canvas ) {
super.onDraw(canvas);
// Don't draw pinBitmap before image is ready so it doesn't move around during setup.
if (!isReady()) {
return;
}
canvasArray.clear();
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.RED);
paint.setTextSize(60);
for (PointF point : sPin) {
if (point != null && pinBitmap != null) {
PointF vPin = sourceToViewCoord(point);
float vX = vPin.x - (pinBitmap.getWidth() / 2);
float vY = vPin.y - pinBitmap.getHeight();
canvas.drawText("" + pinNames.get(i++), vX, vY, paint);
canvas.drawBitmap(pinBitmap, vX, vY, paint);
Model model = new Model();
model.setX(vX);
model.setY(vY);
model.setBitmapH(pinBitmap.getHeight());
model.setBitmapW(pinBitmap.getWidth());
model.setPoint(point);
canvasArray.add(model);
/* int itemCount = canvasArray.size();
if (canvasArray != null && canvasArray.size() > 0) {
for (int i = 0; i < canvasArray.size(); i++) {
canvas.drawText("" + itemCount, vX, vY, paint);
}
}
else {
canvasArray= new ArrayList<>();
}*/
}
}
}
public ArrayList<Model> setOnPinClick() {
return canvasArray;
}
interface OnPinClick {
void pinClick();
}
}
Вложения
Последнее редактирование модератором: