繁体   English   中英

如何在折叠的工具栏的ImageView中加载图片?

[英]How to load a picture in the ImageView of a collapsing toolbar?

我刚刚创建了一个活动来显示一些产品信息,并且该活动具有折叠工具栏。 我想在“活动”打开后立即通过Picasso加载图像。

这是当前代码:

public class ProductActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_product);
    Product p = (Product) getIntent().getExtras().getSerializable("product");
    setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setTitle(p.getProductName());

    TextView name = (TextView) findViewById(R.id.product_name);
    TextView type = (TextView) findViewById(R.id.product_type);
    TextView description = (TextView) findViewById(R.id.product_description);
    TextView ingredients = (TextView) findViewById(R.id.product_ingredients);
    TextView price = (TextView) findViewById(R.id.product_price);
    ImageView thumbnail = (ImageView) findViewById(R.id.product_thumbnail);

    name.setText(p.getProductName());
    type.setText(p.getProductType().getDisplayName());
    description.setText(p.getProductDescription());
    ingredients.setText("Non disponible");
    price.setText(p.getProductPrice().length>1 ? "À partir de "+p.getProductPrice()[0].toString()+"€" : p.getProductPrice()[0].toString()+"€");
    Picasso.with(this).load(p.getProductThumbnailURL()).fit().into(thumbnail);
    Picasso.with(this).load(p.getProductThumbnailURL()).fit().into((ImageView)findViewById(R.id.test), new Callback() {
        @Override
        public void onSuccess() {

        }

        @Override
        public void onError() {
            Toast.makeText(ProductActivity.this, "Impossible de charger l'image !", Toast.LENGTH_SHORT).show();
        }
    });

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if(item.getItemId()==android.R.id.home)finish();
    return super.onOptionsItemSelected(item);
}

}

这是活动的屏幕(不用担心xD设计)

ProductActivity

任何想法 ? :p

这是ProductActivity的XML文件:

<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.slama.hotpizza77.ProductActivity">

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="250dp"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:contentScrim="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">

        <ImageView
            android:id="@+id/product_thumbnail"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop"
            app:layout_collapseMode="parallax"
            android:contentDescription="@string/product_thumbnail_string" />

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:layout_scrollFlags="scroll|enterAlwaysCollapsed"/>

    </android.support.design.widget.CollapsingToolbarLayout>

</android.support.design.widget.AppBarLayout>

<android.support.v4.widget.NestedScrollView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical"
    app:layoutManager="LinearLayoutManager"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingTop="0dp">

        <android.support.v7.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="16dp">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:padding="16dp">

                <TextView
                    android:id="@+id/product_name"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="product_name"
                    style="@style/TextAppearance.AppCompat.Large"
                    tools:ignore="HardcodedText" />

                <TextView
                    android:id="@+id/product_type"
                    style="@style/TextAppearance.AppCompat.Medium"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="product_type"
                    android:textAppearance="@style/TextAppearance.AppCompat.Button"
                    tools:ignore="HardcodedText" />

                <TextView
                    style="@style/TextAppearance.AppCompat.Body1"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="8dp"
                    android:text="Description :"
                    android:textSize="18sp"
                    tools:ignore="HardcodedText" />

                <TextView
                    android:id="@+id/product_description"
                    style="@style/TextAppearance.AppCompat.Small"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="product_description"
                    android:textSize="16sp"
                    tools:ignore="HardcodedText" />

                <TextView
                    style="@style/TextAppearance.AppCompat.Body1"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="8dp"
                    android:text="Ingrédients :"
                    android:textSize="18sp"
                    tools:ignore="HardcodedText" />

                <TextView
                    android:id="@+id/product_ingredients"
                    style="@style/TextAppearance.AppCompat.Small"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="product_ingredients"
                    android:textSize="16sp"
                    tools:ignore="HardcodedText" />

                <LinearLayout
                    android:layout_marginTop="16dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:src="@drawable/ic_product_pork"/>

                    <TextView
                        android:layout_marginLeft="8dp"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Contient de la viande issue de porc !"
                        style="@style/TextAppearance.AppCompat.Body2"/>

                </LinearLayout>

                <LinearLayout
                    android:layout_marginTop="8dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:src="@drawable/ic_product_notforkid"/>

                    <TextView
                        android:layout_marginLeft="8dp"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Ne convient pas aux enfants !"
                        style="@style/TextAppearance.AppCompat.Body2"/>

                </LinearLayout>

                <TextView
                    android:id="@+id/product_price"
                    android:layout_marginTop="16dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="product_price"
                    style="@style/Widget.AppCompat.Button.Colored"
                    tools:ignore="HardcodedText" />

                <ImageView
                    android:id="@+id/test"
                    android:layout_width="match_parent"
                    android:layout_height="200dp"/>

            </LinearLayout>

        </android.support.v7.widget.CardView>

    </LinearLayout>

</android.support.v4.widget.NestedScrollView>

代替您的product_thumbnail ImageView高度的wrap_content,使用match_parent或固定大小。

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM