2016-09-22 2 views
1

мне нужно вставить вид логотипа в панели инструментов:setLogo панель из URL-адреса картинок

это код:

toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setDisplayShowHomeEnabled(true); 
    getSupportActionBar().setTitle(titolo); 
    toolbar.setLogo(*); 

* здесь мне нужно вставить логотип с URL. Это возможно?

EDIT:

это мой XML:

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

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

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:layout_scrollFlags="scroll|enterAlways" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabMode="fixed" 
     app:tabGravity="fill"/> 
</android.support.design.widget.AppBarLayout> 

<android.support.v4.view.ViewPager 
    android:id="@+id/viewpager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

Я не могу вставить ImageView в этой панели. Как создать изображение в этом xml?

ответ

-1

Вы можете использовать Glide

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 


    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay"> 

     <ImageView 
      android:id="@+id/logo" 
      android:layout_width="100dp" 
      android:layout_height="40dp" 
      android:layout_gravity="right" 
      android:layout_marginRight="10dp" 
      android:scaleType="fitXY" 
      android:src="@drawable/logo" /> 
    </android.support.v7.widget.Toolbar> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabGravity="fill" 
     app:tabMode="fixed" /> 

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

<android.support.v4.view.ViewPager 
    android:id="@+id/viewpager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|end" 
    android:layout_margin="@dimen/fab_margin" 
    android:src="@android:drawable/ic_dialog_email" /> 

в Java

ImageView logo= (ImageView) findViewById(R.id.logo); 
Glide 
    .with(this) 
    .load(url) 
    .crossFade() 
    .into(logo); 

enter image description here

+0

и далее 'toolbar.setLogo (myImageView)'? –

+0

@francescobocci, приведенный выше, был всего лишь примером того, что вам нужно передать свой логотип в режиме «load» Glide для загрузки изображения с URL-адреса. Glide загрузит изображение, а затем установит его в свой myImageView –

+0

см. Мое редактирование .. когда я вставляю «образное изображение» в свой xml, я не вижу его в предварительном просмотре androidstudio .. infact, когда я использую ваш код, они ничего не делают –

0

toolbar.setLogo только принимается к оплате. Он не будет принимать URL. Поэтому, хотя есть временное решение для вставки в панель инструментов imageview, чтобы загрузить изображение с помощью Glide/Picasso, что не эквивалентно настройке логотипа. Чтобы установить логотип из URL-адреса, вам нужно будет создать ресурс Drawable из URL-адреса. Код ниже

public static Drawable drawableFromUrl(String url) throws IOException { 
Bitmap x; 

HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); 
connection.connect(); 
InputStream input = connection.getInputStream(); 

x = BitmapFactory.decodeStream(input); 
return new BitmapDrawable(x); 
} 

тогда вы можете вставить его в логотип. Код ниже:

Drawable thisDrawable = drawableFromUrl(url); 
toolbar.setLogo(thisDrawable); 

Это должно соответствовать вашей цели. Дайте мне знать, как это происходит. Все самое лучшее!

 Смежные вопросы

  • Нет связанных вопросов^_^