그리기 도구를 만들려고하는데,이 그리기 도구를 사용하면 이미지를 선택하고 스케치에 배치 할 수 있습니다. 그러면 스케치에 배치하여 이후에 조작 할 수 있습니다. 프로젝트에 속한 모든 이미지가 동일한 축척 (1 : 100)으로 설정되었습니다. 작업 영역을 생성하기 위해 프로그램이 수행하는 단계는 다음과 같습니다. 먼저 대화 상자가 나타나 X 축에 작업 영역을 입력하라고합니다 :화면 해상도보다 큰 ImageView의 배율을 잘못 입력했습니다.
public static float setSizeWorkAre() {
PointF offsetMtrs = PixsToMts(offset);//65x100 are default value to set the offset point for the plot
scale = 1;
PointF screenInMts = PixsToMts(screenResolution);
return ((areaSelected.x + offsetMtrs.x)/screenInMts.x);
이 방법 미터 픽셀 변환 :
public static PointF PixsToMts(PointF coordenate) {
return new PointF((float) ((((coordenate.x * 2.54)/dpi) * scale)/100),
(float) ((((coordenate.y * 2.54)/dpi) * scale)/100));
}
//prompts user for area size
String areaX = txtLargeArea.getText().toString();
//parse to int
int area = Integer.parseInt(areaX);
if (area > 14 && area < 101) {
//set atributes from MyConvert Class
// 15 is a fixed size for Y axis
MyConvert.setAreaSelected(new PointF(area, 15));
MyConvert.setScale(MyConvert.setSizeWorkAre());
축척대로 기능 setSizeWorkAre 복귀로 설정된 그럼 난 화면 해상도 얻을 : 나는 화면 작업 영역을 설정하는 것이 지금
// class that allows to obtain info about device
DisplayMetrics metrics = getResources().getDisplayMetrics();
//set atributes from MyConvert class
MyConvert.setDpi(metrics.densityDpi);
MyConvert.setScreenResolution(new
PointF(metrics.widthPixels,metrics.heightPixels));
을, 나는 이미지 배치를 진행합니다 : 이미지가 재 조정됩니다
ImageView newImage = new ImageView(getContext());
//set properties for imageView
newImage.setScaleType(ImageView.ScaleType.CENTER);
newImage.setAdjustViewBounds(true);
newImage.setDrawingCacheEnabled(true);
newImage.setOnTouchListener(this);
이것은을
imgViewSelected.getLayoutParams().width = (int)
MyConvert.scaleValue(newImage.getDrawable().getIntrinsicWidth());
imgViewSelected.getLayoutParams().height = (int)
MyConvert.scaleValue(newImage.getDrawable().getIntrinsicHeight());
및 scaleValue 방법 :
public static float scaleValue(float value){
float resScale= getScale()/122;
float salida= value/resScale;
return salida;
}
안드로이드가 자동으로 스케일링 된 다음 내 지침에서 다른 스케일을 다시 수행하는 것과 같이 화면 해상도보다 더 큰 이미지 하나를 선택하기 전까지 이것은 모두 잘 작동합니다.
일부 이미지 무슨 일이 일어나고 있는지의 아이디어를 제공하기 위해이 이미지에서
, 그것은 더 나은 보이는이 작업 영역은 40 이상 (MTS)로 설정되어있는 경우, 정상적으로 작동하는 것으로 나타납니다, 더 큰 값 30 (MTS)로 설정되어이 경우 영역에서 접근
더 당신이 작은에 이미지를 확장 재 얼마나 볼 수 있습니다, 그것은 단지 화면 고해상도보다 큰 이미지를 어떻게 기억
이미지가 없습니다 처리기 전문가가 있습니까? 이 문제에 대한 어떤 힌트라도 높이 평가 될 것입니다.
매력처럼 작동합니다. – Juanca