2016-07-08 5 views
0

私は3つのタブを持つスライドタブレイアウトを使用しています。私は、最初のタブのURLから画像を表示しようとしています。Android - SlidingTabLayoutにコンテンツを表示

イメージを1つのビューにロードしようとしましたが、正常に動作しました。ここで

は私の最初のタブ(activity_first.xml)のためのXMLです:最初のタブの

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=“myproject.FirstTab”> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="TEST LOADING IMAGE" 
     android:id="@+id/textView" 
     android:layout_marginTop="30dp" 
     android:layout_centerHorizontal="true" /> 

    <ImageView 
     android:layout_width="200dp" 
     android:layout_height="200dp" 
     android:id="@+id/imageView" 
     android:layout_below="@+id/textView" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="66dp" /> 

</RelativeLayout> 

のJava(FirstTab.java):

public class FirstTab extends ActionBarActivity { 
    Bitmap b; 
    ImageView img; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_first); 
     img = (ImageView) findViewById(R.id.imageView); 
     information info = new information(); 
     info.execute(""); 
    } 

    public class information extends AsyncTask<String, String, String> { 

     @Override 
     protected String doInBackground(String... arg0) { 
      try { 
       URL url = new URL("https://si.wsj.net/public/resources/images/BN-BY925_mag041_OZ_20140318165119.jpg"); 
       InputStream is = new BufferedInputStream(url.openStream()); 
       b = BitmapFactory.decodeStream(is); 
      } catch (Exception e) { 

      } 
      return null; 
     } 

     @Override 
     protected void onPostExecute(String result) { 
      img.setImageBitmap(b); 
     } 
    } 
} 

、ここでは私の断片(LayoutInflaterです。 java):

上記の結果は、テキストビューのみが表示されます。

答えて

0

mTab​​Layout.getTabAt(0).setIcon(R.drawable.needed_icon)

を試したり、画像をテキストが必要な場合は、あなたの活動に

public class SampleFragmentPagerAdapter extends FragmentPagerAdapter { 
............. 
@Override 
public CharSequence getPageTitle(int position) { 
     Drawable image = ContextCompat.getDrawable(context, imageResId[position]); 
     image.setBounds(0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight()); 
     SpannableString sb = new SpannableString(" "); 
     ImageSpan imageSpan = new ImageSpan(image, ImageSpan.ALIGN_BOTTOM); 
     sb.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     return sb; 
    } 
} 

して、このクラスを追加する必要がありますしてください ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); viewPager.setAdapter(new SampleFragmentPagerAdapter(getSupportFragmentManager(), MainActivity.this));

詳細:https://guides.codepath.com/android/Google-Play-Style-Tabs-using-TabLayout

0

ドキュメントに戻って、アクティビティとフラグメントがどのように機能するかを読んでください。私はこれが攻撃的であると言っていますが、あなたのコードにかなりの誤りがあり、あなたがいくつかの核心概念を誤解していると思わせるからです。

まず、あなたのアクティビティ(あなたのやり方はsetContentView()です)とあなたのフラグメントにあなたのTextView用のテキストが既に含まれています。それがテキストが表示される理由です。

また、AsyncTaskはビットマップをonDoInBackgroundに返して、onPostExcecute(現在持っている文字列のinsted)の引数として渡されます。

SlidingTabsLayoutがありますが、レイアウトにSlidingTabsLayoutはありません。どのようにタブを使用できますか?

フラグメントはイメージをロードしません(これはFirstTabアクティビティで行われます)。それが決して示されていない理由です。

関連する問題