Could someone help? Thanks!
Ken
On Mar 25, 10:22 pm, Ken <[EMAIL PROTECTED]> wrote:
> Oops .... I've attached the Icon class below. Initially the grid is
> aligned at the top, but if you move around using the DPAD, the grid
> seems to be aligned at the bottom. But since the total height of the
> icon+text is different (we have both the one-line text like iconxxx
> and two-line text like iconxxxxxx), the grid is messed up ....
>
> Ken
>
> ----- Icon.java -----
> package com.test.threadtest;
>
> public class Icon {
> public String name;
> public String iconUrl;
>
> public Icon() {
> name = "";
> iconUrl = "";
> }
>
> }
>
> On Mar 25, 4:56 am, "Megha Joshi" <[EMAIL PROTECTED]> wrote:
>
> > Hi,
>
> > I tried to run your code to see what you mean by alignment is messed up, but
> > the code for Icon class is missing.
> > Can you give more details on what exactly is going wrong?
>
> > Thanks,
> > Megha
>
> > On Sun, Mar 23, 2008 at 8:17 PM, Ken <[EMAIL PROTECTED]> wrote:
>
> > > Hi there,
>
> > > Please take a look at:
> > >http://kombadil.willflow.com/misbehaving_grid/
>
> > > The grid starts out OK, but if you move around, the alignment is
> > > messed up. Any suggestions?
>
> > > Thanks!
>
> > > Ken
>
> > > P.S. I've attached the code below:
>
> > > ----- main.xml -----
> > > <?xml version="1.0" encoding="utf-8"?>
>
> > > <GridView xmlns:android="http://schemas.android.com/apk/res/android"
> > > android:id="@+id/launch_grid"
> > > android:layout_width="fill_parent"
> > > android:layout_height="fill_parent"
> > > android:padding="10dip"
> > > android:verticalSpacing="10"
> > > android:horizontalSpacing="10"
> > > android:numColumns="auto_fit"
> > > android:columnWidth="60"
> > > android:stretchMode="columnWidth"
>
> > > android:gravity="center"
> > > />
>
> > > ----- ThreadTest.java -----
> > > package com.test.threadtest;
>
> > > import java.io.BufferedInputStream;
> > > import java.io.InputStream;
> > > import java.net.HttpURLConnection;
> > > import java.net.URL;
> > > import java.util.ArrayList;
> > > import java.util.List;
>
> > > import android.app.Activity;
> > > import android.content.Context;
> > > import android.content.Intent;
> > > import android.graphics.Bitmap;
> > > import android.graphics.BitmapFactory;
> > > import android.os.Bundle;
> > > import android.os.Handler;
> > > import android.util.Log;
> > > import android.view.View;
> > > import android.view.ViewGroup;
> > > import android.widget.AdapterView;
> > > import android.widget.BaseAdapter;
> > > import android.widget.GridView;
> > > import android.widget.ImageView;
> > > import android.widget.LinearLayout;
> > > import android.widget.TextView;
> > > import android.widget.AdapterView.OnItemClickListener;
>
> > > public class ThreadTest extends Activity {
> > > private List<Icon> icons;
> > > private GridView launchView;
> > > private IconListAdapter iconListAdapter;
>
> > > [EMAIL PROTECTED]
> > > public void onCreate(Bundle icicle) {
> > > super.onCreate(icicle);
> > > setContentView(R.layout.main);
> > > final Handler mHandler = new Handler();
> > > icons = new ArrayList<Icon>();
>
> > > Thread t = new Thread() {
> > > public void run() {
> > > perform();
> > > mHandler.post(mUpdate);
> > > }
> > > };
>
> > > t.start();
> > > }
>
> > > protected void perform() {
> > > ServerHandler serverHandler = new ServerHandler();
> > > icons = serverHandler.getIcons();
> > > iconListAdapter = new IconListAdapter(this, icons);
>
> > > }
>
> > > final Runnable mUpdate = new Runnable() {
> > > public void run() {
> > > launchView = (GridView) findViewById(R.id.launch_grid);
> > > launchView.setAdapter(iconListAdapter);
> > > launchView.setOnItemClickListener(new OnItemClickListener()
> > > {
> > > public void onItemClick(AdapterView parent, View v,
> > > int
> > > position, long id) {
> > > Intent i = new Intent(ThreadTest.this,
> > > ThreadTest.class);
> > > startActivity(i);
> > > }
> > > });
>
> > > }
> > > };
>
> > > public class IconListAdapter extends BaseAdapter {
> > > private Context ctx;
> > > private List<Icon> icons;
>
> > > public IconListAdapter(Context ctx, List<Icon> icons) {
> > > this.ctx = ctx;
> > > this.icons = icons;
> > > }
>
> > > public View getView(int position, View convertView, ViewGroup
> > > parent) {
> > > Icon app = icons.get(position);
> > > ApplicationView av = new ApplicationView(ctx, app.name,
> > > app.iconUrl);
> > > return av;
> > > }
>
> > > public final int getCount() {
> > > return icons.size();
> > > }
>
> > > public final Object getItem(int position) {
> > > return icons.get(position);
> > > }
>
> > > public final long getItemId(int position) {
> > > return position;
> > > }
> > > }
>
> > > public static Bitmap getBitmap(String urlString) {
> > > Bitmap bm = null;
>
> > > if (urlString.startsWith("http")) {
> > > try {
> > > URL url = new URL(urlString);
> > > HttpURLConnection conn =
> > > (HttpURLConnection)
> > > url.openConnection();
> > > conn.connect();
> > > InputStream is = conn.getInputStream();
> > > BufferedInputStream bis = new
> > > BufferedInputStream(is);
> > > bm = BitmapFactory.decodeStream(bis);
> > > conn.disconnect();
> > > is.close();
> > > bis.close();
> > > } catch (Exception e) {
> > > Log.e("error", e.toString());
> > > bm = null;
> > > }
> > > }
>
> > > return bm;
> > > }
>
> > > public class ApplicationView extends LinearLayout {
> > > private TextView name;
> > > private ImageView icon;
>
> > > public ApplicationView(Context context, String name, String
> > > urlString) {
> > > super(context);
> > > this.setOrientation(VERTICAL);
>
> > > this.icon = new ImageView(context);
> > > addView(icon, new
> > > LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
> > > LayoutParams.WRAP_CONTENT));
> > > this.icon.setImageBitmap(getBitmap(urlString));
>
> > > this.name = new TextView(context);
> > > addView(this.name, new
> > > LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
> > > LayoutParams.WRAP_CONTENT));
> > > this.name.setText(name);
> > > }
> > > }
> > > }
>
> > > ----- ServerHandler.java -----
> > > package com.test.threadtest;
>
> > > import java.util.ArrayList;
> > > import java.util.List;
>
> > > import android.util.Log;
>
> > > public class ServerHandler {
> > > public List<Icon> getIcons() {
> > > final List<Icon> icons = new ArrayList<Icon>();
>
> > > String name = "icon";
>
> > > for(int i=0; i<10; i++) {
> > > Icon icon = new Icon();
> > > icon.name = name;
> > > name += "xxx";
> > > icon.iconUrl = "
> > >http://code.google.com/android/images/
> > > logo_android.gif <http://code.google.com/android/images/logo_android.gif>
> > > ";
> > > icons.add(icon);
> > > }
>
> > > // Sleep code
> > > // Comment this section out and the code would work.
> > > // In reality it is a piece of code that talks to a server.
> > > // try {
> > > // Log.e("test", "enter");
> > > // Thread.sleep(1000);
> > > // Log.e("test", "leave");
> > > // } catch (InterruptedException e) {
> > > // e.printStackTrace();
> > > // }
>
> > > return icons;
> > > }
> > > }
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
Announcing the new M5 SDK!
http://android-developers.blogspot.com/2008/02/android-sdk-m5-rc14-now-available.html
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---