Android 에서 Horizontal ScrollView 사용 방법 에 대한 자세 한 설명
4075 단어 AndroidHorizontalScrollView
Horizontal ScrollView 는 FrameLayout 입 니 다. ,이것 은 하위 컨트롤 만 아래 에 놓 을 수 있다 는 것 을 의미 합 니 다.이 하위 컨트롤 은 많은 데이터 내용 을 포함 할 수 있 습 니 다.이 하위 컨트롤 자체 가 레이아웃 컨트롤 일 수 있 습 니 다.데 이 터 를 보 여 주 는 다른 컨트롤 을 많이 포함 할 수 있 습 니 다.이 레이아웃 컨트롤 은 보통 수평 레이아웃 의 LinearLayout 를 사용 합 니 다. 。TextView 도 스크롤 가능 한 보기 컨트롤 이기 때문에 Horizontal ScrollView 가 필요 하지 않 습 니 다.
Horizontal ScrollView 에 많은 그림 이 포함 되 어 있 고 스크롤 해서 볼 수 있 는 예 시 를 소개 합 니 다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
mLinearLayout = (LinearLayout) findViewById(R.id.mygallery);
File externalDir = Environment. getExternalStorageDirectory();
String photosPath = externalDir.getAbsolutePath() + "/test/";
File photosFile = new File(photosPath);
for (File photoFile : photosFile.listFiles()) {
mLinearLayout.addView(getImageView(photoFile.getAbsolutePath()));
}
}
private View getImageView(String absolutePath) {
Bitmap bitmap = decodeBitmapFromFile(absolutePath, 200, 200);
LinearLayout layout = new LinearLayout(getApplicationContext());
layout.setLayoutParams( new LayoutParams(250, 250));
layout.setGravity(Gravity. CENTER);
ImageView imageView = new ImageView(this);
imageView.setLayoutParams( new LayoutParams(200,200));
imageView.setScaleType(ImageView.ScaleType. CENTER_CROP);
imageView.setImageBitmap(bitmap);
layout.addView(imageView);
return layout;
}
private Bitmap decodeBitmapFromFile(String absolutePath, int reqWidth, int reqHeight) {
Bitmap bm = null;
// First decode with inJustDecodeBounds=true to check dimensions
final BitmapFactory.Options options = new BitmapFactory.Options();
options. inJustDecodeBounds = true ;
BitmapFactory. decodeFile(absolutePath, options);
// Calculate inSampleSize
options. inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
// Decode bitmap with inSampleSize set
options. inJustDecodeBounds = false ;
bm = BitmapFactory. decodeFile(absolutePath, options);
return bm;
}
private int calculateInSampleSize(Options options, int reqWidth,
int reqHeight) {
// Raw height and width of image
final int height = options.outHeight;
final int width = options.outWidth;
int inSampleSize = 1;
if (height > reqHeight || width > reqWidth) {
if (width > height) {
inSampleSize = Math. round((float)height / ( float)reqHeight);
} else {
inSampleSize = Math. round((float)width / ( float)reqWidth);
}
}
return inSampleSize;
}
표시 할 그림 은 외 장 SDCard 의 test 디 렉 터 리 에 놓 여 있 습 니 다.위의 예제 프로그램 은 큰 그림 의 미리 보기 버 전 만 표시 하고 이 부분 에 대해 모 르 는 것 은 참고 할 수 있 습 니 다.Android 는 어떻게 비교적 큰 Bitmaps 를 효율적으로 표시 합 니까?
Horizontal ScrollView 는 지정 한 위치(x,0)로 스크롤 하 는 것 도 설정 할 수 있 으 며,하위 컨트롤 도 따라 스크롤 합 니 다.
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 800px, smoothScrollTo(int x, int y)
hsv.scrollTo(800, 0);
}
}, 2000);
효과 그림:이상 은 본 고의 모든 내용 입 니 다.여러분 이 안 드 로 이 드 소프트웨어 프로 그래 밍 을 배 우 는 데 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.