ورود

View Full Version : تغیر فونت لیست ویو



esmail3309
یک شنبه 23 شهریور 1393, 22:09 عصر
سلام دوستان

چطوری میتونم فونت متون در لیست ویو رو تغیر بدم؟

از این (http://www.learn2crack.com/2013/10/android-custom-listview-images-text-example.html)آموزش استفاده کردم

saeed_g21
یک شنبه 23 شهریور 1393, 23:19 عصر
اگه لیست ویوی که ساختی شخصی سازی (سفارشی) شده باشه میشه ولی در غیر اینصورت فکر نکنم

کد لایوت و اکتیویتی رو بده بگم

esmail3309
دوشنبه 24 شهریور 1393, 06:45 صبح
اکتیویتی:

package com.example.clashup;

import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;


public class CustomList extends ArrayAdapter<String>{


private final Activity context;
private final String[] web;
private final Integer[] imageId;
public CustomList(Activity context,

String[] web, Integer[] imageId) {
super(context, R.layout.list_single, web);
this.context = context;
this.web = web;
this.imageId = imageId;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView= inflater.inflate(R.layout.list_single, null, true);
TextView txtTitle = (TextView) rowView.findViewById(R.id.txt);
ImageView imageView = (ImageView) rowView.findViewById(R.id.img);
txtTitle.setText(web[position]);
imageView.setImageResource(imageId[position]);
return rowView;
}
}
اکتیویتی:

package com.example.clashup;

import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.app.Activity;
import android.content.Intent;
public class activity_1 extends Activity {
ListView list;
String[] web = {
"ساختمان های دفاعی",
"ساختمان های ارتش",
"ساختمان های منابع",
"ساختمان های دیگر",
"سربازان اکسیر",
"سربازان اکسیر سیاه",
"طلسم ها",
"تله ها"
} ;
Integer[] imageId = {
R.drawable.zero_1_3_1,
R.drawable.zero_1_2_1,
R.drawable.zero_1_1_1,
R.drawable.zero_1_4_1,
R.drawable.zero_1_5_1,
R.drawable.zero_1_6_1,
R.drawable.zero_1_7_1,
R.drawable.zero_1_8_1
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_activity_1);



CustomList adapter = new
CustomList(activity_1.this, web, imageId);
list=(ListView)findViewById(R.id.list);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Intent intent = new Intent();
switch(arg2){
case 0: intent.setClass(arg1.getContext(), activity_1_1.class ); startActivity(intent); break;
case 1: intent.setClass(arg1.getContext(), activity_1_2.class ); startActivity(intent); break;
case 2: intent.setClass(arg1.getContext(), activity_1_3.class ); startActivity(intent); break;
case 3: intent.setClass(arg1.getContext(), activity_1_4.class ); startActivity(intent); break;
case 4: intent.setClass(arg1.getContext(), activity_1_5.class ); startActivity(intent); break;
case 5: intent.setClass(arg1.getContext(), activity_1_6.class ); startActivity(intent); break;
case 6: intent.setClass(arg1.getContext(), activity_1_7.class ); startActivity(intent); break;
case 7: intent.setClass(arg1.getContext(), activity_1_8.class ); startActivity(intent); break;


}}}
} );

}


لایوت:

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

<RelativeLayout
android:id="@+id/RelativeLayout1"
android:layout_height="40dp"
android:layout_marginBottom="3dp"
android:layout_marginTop="4dp"
android:background="@drawable/title"
android:gravity="left" >

<ImageView
android:id="@+id/img"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="270dp" />

<TextView
android:id="@+id/txt"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="8dp"
android:textStyle="bold" />

</RelativeLayout>

</TableLayout>

saeed_g21
دوشنبه 24 شهریور 1393, 10:42 صبح
هر فونتی که میخوای کپی کن فولدر : assets

بعد در متد getView اکتیویتی CustomList یک TypeFace تعریف میکنی
مثل :
Typeface font=Typeface.createFromAsset(context.getAssets(),"fonts/BYekan.ttf");

بعد همان Typeface رو برای هرکدوم از Textview هات که خواستی تعریف کن
مثل :
txtTitle.setTypeface(font);

نکته : مسیر فونت و نام فونت و پسوند فونت یعنی کلا همه چیز به حروف کوچک و بزرگ حساس است بایستی مثل هم باشند