Я хочу иметь горизонтальный список прокрутки, который включает некоторые изображения с их названиями. Я использую библиотеку TwoWayView (lucasr), и я не могу показать изображение. Если есть какая-либо возможность иметь изображения в этой библиотеке, пожалуйста, скажите мне, как это сделать. Но если он не поддерживает изображение, предложите мне лучшую библиотеку. Я использую android studio v1.2, и я новичок в android.Как создать горизонтальный список изображений с заголовком в android?
ответ
Вместо использования библиотеки, почему бы не просто использовать андроиды горизонтального прокрутки и добавить к ней свои изображения. Вот очень грубый пример, который вы должны быть в состоянии построить на:
в макете:
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/horizontalScrollView"
android:layout_above="@+id/linearLayout3"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/image_container"
android:orientation="horizontal">
</LinearLayout>
</HorizontalScrollView>
В коде:
LinearLayout layout = (LinearLayout) view.findViewById(R.id.image_container)
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
// Add 4 images
for (int i = 0; i < 4; i++) {
layoutParams.setMargins(20, 20, 20, 20);
layoutParams.gravity = Gravity.CENTER;
ImageView imageView = new ImageView(getActivity());
imageView.setImageResource(R.drawable.image);
imageView.setOnClickListener(documentImageListener);
imageView.setLayoutParams(layoutParams);
layout.addView(imageView);
}
Как я уже сказал, очень грубо, но надеюсь, что это помогает!
Edit: по пути ориентация макета должна быть «горизонтальная» андроид: ориентация = «горизонтальные»>
Я думаю, что это хорошо. но getActivity() в определении ImageView не разрешен. что мне делать? –
RecyclerView лучше, но – Sheychan
@MohammadTahvildary вам нужно передать в контексте. если бы вы могли опубликовать некоторый код, было бы проще помочь вам –
для горизонтальной прокрутки у вас есть, чтобы не использовать TwoWayView библиотеку, вы можете создавать пользовательский горизонтальное расположение, как это:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/mygallery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
/>
</HorizontalScrollView>
</LinearLayout>
в OnCreate() метод, получить идентификатор LinearLayout из файла XML и добавить динамически создаваемых ImageView в LinearLayout:
import java.io.File;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
public class MainActivity extends Activity {
LinearLayout myGallery;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myGallery = (LinearLayout)findViewById(R.id.mygallery);
String ExternalStorageDirectoryPath = Environment
.getExternalStorageDirectory()
.getAbsolutePath();
String targetPath = ExternalStorageDirectoryPath + "/test/";
Toast.makeText(getApplicationContext(), targetPath, Toast.LENGTH_LONG).show();
File targetDirector = new File(targetPath);
File[] files = targetDirector.listFiles();
for (File file : files){
myGallery.addView(insertPhoto(file.getAbsolutePath()));
}
}
View insertPhoto(String path){
Bitmap bm = decodeSampledBitmapFromUri(path, 220, 220);
LinearLayout layout = new LinearLayout(getApplicationContext());
layout.setLayoutParams(new LayoutParams(250, 250));
layout.setGravity(Gravity.CENTER);
ImageView imageView = new ImageView(getApplicationContext());
imageView.setLayoutParams(new LayoutParams(220, 220));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setImageBitmap(bm);
layout.addView(imageView);
return layout;
}
public Bitmap decodeSampledBitmapFromUri(String path, 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(path, options);
// Calculate inSampleSize
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
bm = BitmapFactory.decodeFile(path, options);
return bm;
}
public int calculateInSampleSize(
BitmapFactory.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;
}
}
Если ваша цель - показать список изображений горизонтальным образом, вам лучше использовать Horizontal ListView. Проверьте ссылку ценам ниже
Посмотрите, его именно то, что вы хотите изображение + текст
- 1. Как создать горизонтальный список изображений в Android?
- 2. Горизонтальный список просмотров изображений
- 3. Как создать горизонтальный список обертывания
- 4. Горизонтальный UICollectionView с заголовком сверху
- 5. Как создать горизонтальный прокручиваемый список?
- 6. Как получить горизонтальный список?
- 7. Android: Как создать горизонтальный список с помощью listview/gridview
- 8. создать горизонтальный список в css
- 9. Как центрировать этот горизонтальный список изображений?
- 10. Как создать горизонтальный список в вертикальном списке в android
- 11. Как создать горизонтальный список прокручиваемых кнопок в android
- 12. Создать горизонтальный список с титановым сплавом
- 13. Как показать просматриваемый горизонтальный список в Android?
- 14. Как создать горизонтальный просмотр списка? Android
- 15. Как создать горизонтальный ListView с RecyclerView?
- 16. как загрузить горизонтальный вид прокрутки изображений с API в Android
- 17. Android горизонтальный список с вращающимся колесом
- 18. Горизонтальный список в Xamarin.Forms
- 19. Sencha-touch-2.0.0. Горизонтальный список изображений, не работающий в PhoneGap.
- 20. Как предотвратить отображение изображений, структурированных как горизонтальный список из упаковки?
- 21. горизонтальный список в вертикальном списке в android
- 22. Android: Как создать определенный горизонтальный линейный макет
- 23. Android - Горизонтальный список в строке Listview
- 24. Горизонтальный список
- 25. Как создать горизонтальный список прокрутки с эффектом привязки к центру
- 26. Android Список фрагментов с фиксированным заголовком
- 27. Как создать горизонтальный ListView в Android с фиксированным количеством элементов?
- 28. Flex горизонтальный список плитки
- 29. Как создать круговой горизонтальный ScrollView
- 30. Создать горизонтальный список вертикальных представлений таблицы
[Проверить] (http://stackoverflow.com/questions/28460300/how-to-build -a-horizontal-listview-with-recyclerview) и [Проверить] (http://developer.android.com/intl/ru/reference/android/support/v17/leanback/widget/HorizontalGridView.html) – Skynet
Использовать 'ViewPager ' –