ich unendlich Galerie haben auf der Grundlage dieses Beispiel:Text Anpassung für unendliche Scrolling Galerie
http://blog.blundell-apps.com/infinite-scrolling-gallery/, alles, was laufen ok:
genau ich will angewendet Text zu jedem Bild und können Text anpassen auch als Bild gezeigt nach unten, und jedes Bild Text als andere hat diffrenet, aber gelingt es immer noch nicht mit unendlicher Galerie zu tun
Ich habe versucht, mit folgenden Code aber es gab mir FORCE SCHLIEßEN wenn die App läuft,
(VIELLEICHT GIBT ES FALSCH CODES ich geschrieben habe, aber ich bin noch am Lernen JAVA UND beginer IN ANDROID-Entwicklung).
bitte jede Hilfe und Beratung wird
DANK VIEL geschätzt.
MEIN CODE:
GALLERY_ITEM
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center_horizontal">
<ImageView
android:id="@+id/image"
android:layout_height="300dp"
android:layout_width="fill_parent" />
<TextView
android:text="TextView"
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="#B22222"
android:textSize="20dp"
android:gravity="center"
android:layout_margin="30dp"
android:layout_below="@+id/image" />
dann in InfiniteScrollingGalleryActivity.java wie folgt ändern:
public class InfiniteScrollingGalleryActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set the layout to use
setContentView(R.layout.main);
InfiniteGallery galleryOne = (InfiniteGallery) findViewById(R.id.galleryOne);
galleryOne.setAdapter(new InfiniteGalleryAdapter(this));
} }
dann das Unendliche ändern GalleryResourceAdapter.java wie folgt:
public class InfiniteGalleryAdapter extends BaseAdapter {
/** The width of each child image */
private static final int G_ITEM_WIDTH = 360;
/** The height of each child image */
private static final int G_ITEM_HEIGHT = 240;
/** The context your gallery is running in (usually the activity) */
private Context mContext;
private int imageWidth;
private int imageHeight;
private int[] imageIds;
public InfiniteGalleryAdapter(Context c, int[] imageIds) {
this.mContext = c;
this.imageIds = imageIds; }
public int getCount() {
return Integer.MAX_VALUE; }
public Object getItem(int position) {
return position; }
public long getItemId(int position) {
return position; }
private Activity activity;
private LayoutInflater inflater=null;
public InfiniteGalleryAdapter(Activity a) {
final int[] imageIds;
activity = a;
inflater = (LayoutInflater)activity.getSystemService
Context.LAYOUT_INFLATER_SERVICE); }
public class ViewHolder{
public TextView text;
public ImageView image; }
public View getView(int position, View convertView, ViewGroup parent) {
ImageView i = getImageView();
try {
int itemPos = (position % imageIds.length);
i.setImageResource(imageIds[itemPos]);
((BitmapDrawable) i.getDrawable()).setAntiAlias(true); }
catch (OutOfMemoryError e) {
Log.e("InfiniteGalleryResourceAdapter", "Out of memory creating imageview.
Using empty view.", e); }
View vi=convertView;
ViewHolder holder;
if(convertView==null){
vi = inflater.inflate(R.layout.gallery_items, null);
holder=new ViewHolder();
holder.text=(TextView)vi.findViewById(R.id.textView1);
holder.image=(ImageView)vi.findViewById(R.id.image);
vi.setTag(holder); }
else
holder=(ViewHolder)vi.getTag();
holder.text.setText(name[position]);
final int stub_id=images[position];
holder.image.setImageResource(stub_id);
return vi; }
private int[] images = {
R.drawable.one_1, R.drawable.one_4,
R.drawable.one_2, R.drawable.one_5,
R.drawable.one_3 };
private String[] name = {
"this is my car", "i love this",
"please hekp me", "im in park",
" This is nice place to visit.", };
private ImageView getImageView() {
setImageDimensions();
ImageView i = new ImageView(mContext);
i.setLayoutParams(new Gallery.LayoutParams(imageWidth, imageHeight));
i.setScaleType(ScaleType.CENTER_INSIDE); return i; }
private void setImageDimensions() {
if (imageWidth == 0 || imageHeight == 0) {
imageWidth = AndroidUtils.convertToPix(mContext, G_ITEM_WIDTH);
imageHeight = AndroidUtils.convertToPix(mContext,G_ITEM_HEIGHT);
} }
}
Dies ist logcat Fehler:
04-10 02:25:13.057: E/AndroidRuntime(12302): FATAL EXCEPTION: main
04-10 02:25:13.057: E/AndroidRuntime(12302): java.lang.NullPointerException
04-10 02:25:13.057: E/AndroidRuntime(12302):
at com.infinite.test.AndroidUtils.convertToPix(AndroidUtils.java:11)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at com.infinite.test.InfiniteGalleryAdapter.setImageDimensions
(InfiniteGalleryAdapter.java:131)
4-10 02:25:13.057: E/AndroidRuntime(12302):
at com.infinite.test.InfiniteGalleryAdapter.getImageView
(InfiniteGalleryAdapter.java:117)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at com.infinite.test.InfiniteGalleryAdapter.getView(InfiniteGalleryAdapter.java:66)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:192)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.view.View.measure(View.java:8366)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.view.View.measure(View.java:8366)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.view.ViewGroup.measureChildWithMargins(viewGroup.java:3138)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.view.View.measure(View.java:8366)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.view.View.measure(View.java:8366)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.view.View.measure(View.java:8366)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.view.ViewRoot.performTraversals(ViewRoot.java:844)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.view.ViewRoot.handleMessage(ViewRoot.java:1865)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.os.Handler.dispatchMessage(Handler.java:99)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.os.Looper.loop(Looper.java:123)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at android.app.ActivityThread.main(ActivityThread.java:3687)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at java.lang.reflect.Method.invokeNative(Native Method)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at java.lang.reflect.Method.invoke (Method.java:507)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
04-10 02:25:13.057: E/AndroidRuntime(12302):
at dalvik.system.NativeStart.main(Native Method)
04-10 02:25:13.061: E/(129): Dumpstate > /data/log/dumpstate_app_error
Stellen Sie die Stack-Trace – 207
Ja. Alle roten Linien in logcat, damit die Leute dir helfen können und sehen, welche Ausnahme ausgelöst wird und welche Zeile deines Codes die Kraft verursacht hat close – 207
@ 207 bereits aktualisiert, danke –