2013-03-08 67 views
0

https://itunes.apple.com/us/app/party-cupcake-recipes-300+/id572480130?mt=8在Android的制作配方的应用程序使用列表视图图片

我想要像我上面提供的示例应用程序。我正在使用Android和Java。我使用主菜单的列表视图,它有汤,主菜等。我为菜单中的每个项目构建了一个活动,并在用户点击时打开了这个新活动。

在例子中,汤活动有另一个列表视图,它会有一个我已经制作的汤的列表,配方将是我用photoshop构建的imageview,并且不会有文本或其他东西。

现在我的问题是我可能会有50-60个食谱,并且听起来不合逻辑的为他们每个人做一个类。使用OOP逻辑,我应该有一个类,如配方,并生成具有配方名称和图像视图的对象。所以如果我需要的话,我可以生成数百个,这听起来合乎逻辑。我正在考虑将所有图片存储在资源文件夹中。当我这样做时,我只能给图片链接,而不会将其添加到xml文件。我的意思是我可以用一个由配方对象组成的Arraylist进行列表视图,当点击它们时它会打开它的图像。没有一个XML文件的所有人,或者根本不可能?所有的帮助,将不胜感激...

+0

你问关于如何自己存储图片吗?或者如何引用图片及其路径(不使用XML)。您需要使用某些东西,最好是已存储所有配方名称的任何东西,也可以将它们的路径存储在资源文件夹(无论是XML还是一些简单的数据库)中。 – Wrightboy 2013-03-08 22:43:44

+0

我在问两个问题。我可以将它们存储在资源文件夹中,只需将它们的路径从列表视图打开到屏幕即可。或者我必须为所有图像构建xml页面。 – curiousprogrammer 2013-03-09 00:26:31

回答

0

我不知道你是什么意思的“所有他们的XML文件”,但你可以通过BitmapFactory.decodeResource(getResources(),R.drawable得到的图片。 pictureId)并在ImageView中显示该位图。

public class MySimpleArrayAdapter extends ArrayAdapter<MyImage> { 
    private final Context context; 
    private final ArrayList<MyImage> values; 

    public MySimpleArrayAdapter(Context context, ArrayList<MyImage> values) { 
    super(context, R.layout.rowlayout, values); 
    this.context = context; 
    this.values = values; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) context 
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View rowView = inflater.inflate(R.layout.rowlayout, parent, false); 
    TextView textView = (TextView) rowView.findViewById(R.id.label); 
    ImageView imageView = (ImageView) rowView.findViewById(R.id.icon); 
    textView.setText(values.get(i).getDesc()); 
    imageView.setImageResource(values.get(position).getImageId()); 

    return rowView; 
    } 
} 

public class MyImage{ 
    String desc; 
    int imageId; 
} 


<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <ImageView 
     android:id="@+id/icon" 
     android:layout_width="22px" 
     android:layout_height="22px" 
     android:layout_marginLeft="4px" 
     android:layout_marginRight="10px" 
     android:layout_marginTop="4px" > 
    </ImageView> 

    <TextView 
     android:id="@+id/label" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="20px" > 
    </TextView> 

</LinearLayout> 
+0

我想说如果你可以显示一个图像,而不需要将它添加到带有listview的xml文件中。 – curiousprogrammer 2013-03-08 22:46:22

+0

您可以将图像id存储在ArrayList中,并获取您在ListView上单击的位置,然后将id发送到Activity并显示图像。 – 2013-03-08 23:02:52

+0

我不明白你想达到什么。你不必为图像制作xml。只需将它们存储在资源文件夹中并使用BitmapFactory创建位图即可。检查我的编辑 – 2013-03-09 10:04:54

相关问题