가로 스크롤이있는 이미지 갤러리를 쓰고 있습니다. 이미지는 프로그래밍 방식으로 추가해야합니다. (ImageUtils.scaleImage(imageView, displayMetrics[0], displayMetrics[1])
전화)HorizontalScrollView가있는 간단한 이미지 갤러리
public void setViewList(Integer linearLayoutId, Integer[] imageIdList,
Activity activity) {
displayMetrics = ImageUtils.getDisplayMetric(activity);
LinearLayout ll = (LinearLayout) findViewById(linearLayoutId);
for (Integer imgId : imageIdList) {
ImageView imageView = new ImageView(getContext());
imageView.setImageResource(imgId);
imageView.setScaleType(ImageView.ScaleType.MATRIX);
Integer[] displayMetrics = ImageUtils.getDisplayMetric(activity);
ImageUtils.scaleImage(imageView, displayMetrics[0], displayMetrics[1]);
Integer[] dstDimension = ImageUtils.createDimension();
ImageUtils.getImageSize(imageView, dstDimension);
getImageSizeList().add(dstDimension);
ll.addView(imageView);
}
}
하는 당신은 내가 사용하여 이미지를 다음과 같은 방법을 확장 볼 수 있듯이 : 내가 처리하고 다음 코드와 같이 이미지를 추가하는 사용자 정의 수평 스크롤 뷰를 사용
public static void scaleImage(ImageView imView, int screenWidth, int screenHeight) {
Drawable temp = imView.getDrawable();
Bitmap imBitmap = ((BitmapDrawable)temp).getBitmap();
int imWidth = imBitmap.getWidth();
int imHeight = imBitmap.getHeight();
float xScale = ((float) screenWidth)/imWidth;
float yScale = ((float) screenHeight)/imHeight;
float scale = xScale <= yScale ? xScale : yScale;
Matrix scaleMatrix = new Matrix();
scaleMatrix.postScale(scale, scale);
Bitmap scBitmap = Bitmap.createBitmap(imBitmap, 0, 0, imWidth, imHeight, scaleMatrix, true);
BitmapDrawable scDrBitmap = new BitmapDrawable(imView.getResources(), scBitmap);
imView.setImageDrawable(scDrBitmap);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT
);
layoutParams.gravity = Gravity.CENTER;
imView.setLayoutParams(layoutParams);
}
내 main.xml에 레이아웃은 매우 간단합니다 android.lessons.custom_horizontal_scroll.CustomHorizontalScrollView이 imple입니다
<?xml version="1.0" encoding="utf-8"?>
<android.lessons.custom_horizontal_scroll.CustomHorizontalScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/horizontalScrollView"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout android:orientation="horizontal"
android:id="@+id/mainLayout"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</android.lessons.custom_horizontal_scroll.CustomHorizontalScrollView>
간단한 사용자 정의 HorizontalScrollView를 참조하십시오.
테스트를 위해 저는 삼성 Galaxy S3 및 다음 해상도의 이미지를 사용합니다 : (1) 1290 * 990 (2) 1221 * 900. 모든 것이 잘 표시되지만 때때로 나는 잘못된 결과를 얻을 수 많은 경우에
: 것 같습니다 무엇 첫 번째 이미지는 다음의 하나에 화면을 분할 응용 프로그램에서의 시간을 시작하고 나는 돈 왜 그런 일이 일어 났는지는 알 수 없습니다.
도움 주셔서 감사합니다.
예! 그거야. 고마워. 하지만 질문은 열렸습니다. :) – ilya8891