2016-07-19 9 views
1

私はRecyclerViewを使って3つの異なるテキストを表示していますが、それぞれにTypefaceカスタムを適用したいと思います。今私のアダプタのViewHolderの下にTypefaceコードを入れましたが、それぞれtextViewにそれらをどのように適用するかはわかりません。RecyclerView Custom Typeface Adapter

Adapter.java

public class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder> { 

List<AdapterData> mItems; 

public Adapter() { 
    super(); 
    mItems = new ArrayList<>(); 
    AdapterData data = new AdapterData(); 
    data.setTextOne("Title 1"); 
    data.setTextTwo("Title 2"); 
    data.setTextThree("Title 3"); 
    mItems.add(data); 

    data = new AdapterData(); 
    data.setTextOne("Title 1"); 
    data.setTextTwo("Title 2"); 
    data.setTextThree("Title 3"); 

    data = new AdapterData(); 
    data.setTextOne("Title 1"); 
    data.setTextTwo("Title 2"); 
    data.setTextThree("Title 3"); 
    mItems.add(data); 


} 

@Override 
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 
    View v = LayoutInflater.from(viewGroup.getContext()) 
      .inflate(R.layout.cardview_items, viewGroup, false); 
    return new ViewHolder(v); 
} 

@Override 
public void onBindViewHolder(ViewHolder viewHolder, int i) { 
    AdapterData data = mItems.get(i); 
    viewHolder.textOne.setText(data.getTextOne()); 
    viewHolder.textTwo.setText(data.getTextTwo()); 
    viewHolder.textThree.setText(data.getTextThree()); 

} 


@Override 
public int getItemCount() { 

    return mItems.size(); 
} 

class ViewHolder extends RecyclerView.ViewHolder{ 

    public TextView textOne; 
    public TextView textTwo; 
    public TextView textThree; 

    Typeface customTypeOne = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/Typeface One.ttf"); 
    Typeface customTypeTwo = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/Typeface Two.ttf"); 
    Typeface customTypeThree = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/Typeface Three.ttf"); 


    public ViewHolder(View itemView) { 
     super(itemView); 
     textOne = (TextView)itemView.findViewById(R.id.textView1); 
     textTwo = (TextView)itemView.findViewById(R.id.textView2); 
     textThree = (TextView)itemView.findViewById(R.id.textView3); 


    } 
} 
} 
+0

[アンドロイドでカスタム書体を使用する]の可能複製(http://stackoverflow.com/questions/2973270/アンドロイドのカスタム書体を使用して) –

答えて

1
class ViewHolder extends RecyclerView.ViewHolder { 

     public TextView textOne; 
     public TextView textTwo; 
     public TextView textThree; 

     Typeface customTypeOne = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/Typeface One.ttf"); 
     Typeface customTypeTwo = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/Typeface Two.ttf"); 
     Typeface customTypeThree = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/Typeface Three.ttf"); 


     public ViewHolder(View itemView) { 
      super(itemView); 
      textOne = (TextView) itemView.findViewById(R.id.textView1); 
      textOne.setTypeface(customTypeOne); 
      textTwo = (TextView) itemView.findViewById(R.id.textView2); 
      textTwo.setTypeface(customTypeTwo); 
      textThree = (TextView) itemView.findViewById(R.id.textView3); 
      textThree.setTypeface(customTypeThree); 
     } 
    } 
0

あなたが実際にちょうどのTextViewに書体を追加する必要があります。

public ViewHolder(View itemView) { 
    super(itemView); 
... 
textOne.setTypeface(customTypeOne) 
... 
0

あなたはyoutは上で作成した書体を設定するsetTypeface()メソッドを使用することができますテキストビュー:

textOne.setTypeface(customTypeOne); 
textTwo.setTypeface(customTypeTwo); 
textThree.setTypeface(customTypeThree); 

あなたはgithubで書道を調べることをお勧めします。それは、効率的書体のジレンマを処理するための強力なライブラリです:)

https://github.com/chrisjenx/Calligraphy

0
Typeface myTypeface = Typeface.createFromAsset(getAssets(), "fonts/myFont.ttf"); 
viewHolder.textOne.setTypeface(myTypeface); 
viewHolder.textOne.setText(data.getTextOne()); 
0
public class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder> { 

List<AdapterData> mItems; 

public Adapter() { 
    super(); 
    mItems = new ArrayList<>(); 
    AdapterData data = new AdapterData(); 
    data.setTextOne("Title 1"); 
    data.setTextTwo("Title 2"); 
    data.setTextThree("Title 3"); 
    mItems.add(data); 

    data = new AdapterData(); 
    data.setTextOne("Title 1"); 
    data.setTextTwo("Title 2"); 
    data.setTextThree("Title 3"); 

    data = new AdapterData(); 
    data.setTextOne("Title 1"); 
    data.setTextTwo("Title 2"); 
    data.setTextThree("Title 3"); 
    mItems.add(data); 


} 

@Override 
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 
    View v = LayoutInflater.from(viewGroup.getContext()) 
      .inflate(R.layout.cardview_items, viewGroup, false); 
    return new ViewHolder(v); 
} 

@Override 
public void onBindViewHolder(ViewHolder viewHolder, int i) { 
    AdapterData data = mItems.get(i); 
    viewHolder.textOne.setText(data.getTextOne()); 
    viewHolder.textTwo.setText(data.getTextTwo()); 
    viewHolder.textThree.setText(data.getTextThree()); 

} 


@Override 
public int getItemCount() { 

    return mItems.size(); 
} 

class ViewHolder extends RecyclerView.ViewHolder{ 

    public TextView textOne; 
    public TextView textTwo; 
    public TextView textThree; 

    Typeface customTypeOne = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/Typeface One.ttf"); 
    Typeface customTypeTwo = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/Typeface Two.ttf"); 
    Typeface customTypeThree = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/Typeface Three.ttf"); 


    public ViewHolder(View itemView) { 
     super(itemView); 
     textOne = (TextView)itemView.findViewById(R.id.textView1); 
     textTwo = (TextView)itemView.findViewById(R.id.textView2); 
     textThree = (TextView)itemView.findViewById(R.id.textView3); 


     textOne.setTypeface(customTypeOne); 
     textTwo.setTypeface(customTypeTwo); 
     textThree.setTypeface(customTypeThree); 


    } 
} 
} 
関連する問題