-1

私はAndroidを初めて使用します...Androidプロジェクトにカスタムフォントを入れたいので、このチュートリアルにコードベースを置きます。R.id.Headlineといくつかのxml要素でカスタムフォントを使用したい

私の質問は:

-コードに何か問題がありますか?

-xmlからカスタムUIを構築するためのチュートリアルはありますか?

これが私のコードです

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.concurrent.ExecutionException;

    import android.app.ListActivity;
    import android.content.Context;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.Menu;
    import android.view.MenuInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ListAdapter;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;

    public class MainActivity extends ListActivity {
        private static String url = "http:some url";
        private static final String TAG_HEADLINE = "headline";
        private static final String TAG_PROVIDER = "provider";
        private static final String TAG_TYPE = "deal_type";
        private static final String TAG_BLURB = "blurb";
        private static final String TAG_FEATURED = "featured";
        private static final String TAG_URL = "url";
        private static final String TAG_PRICE = "price";
        private static final String TAG_LOCATION = "location";
        private static final String TAG_IMAGE = "image";
        private static final String TAG_OFFER = "offer";
        private static final String TAG_THUMBNAIL = "thumbnail";
        private static final String TAG_FORMATED = "formatted";
        ArrayList<HashMap<String, String>> dealArrayList = new ArrayList<HashMap<String, String>>();

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.activity_main, menu);
            return super.onCreateOptionsMenu(menu);
        }

        @Override
        protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);
            try {
                ArrayList<HashMap<String, String>> deals = new NetraAsycn()
                        .execute(url).get();
                ListAdapter adapter = new SimpleAdapter(this, deals,
                        R.layout.list_item, new String[] { TAG_THUMBNAIL,
                                TAG_FORMATED, TAG_PROVIDER, TAG_LOCATION,
                                TAG_HEADLINE }, new int[] { R.id.thumbnail,
                                R.id.price, R.id.provider, R.id.location,
                                R.id.headline });
  Typeface myTypeface = Typeface.createFromAsset(getAssets(), "fonts/myFont.ttf");
    TextView myTextView = (TextView)findViewById(R.id.headline);
    myTextView.setTypeface(myTypeface);

                setListAdapter(adapter);
                ListView lv = getListView();
                lv.setDividerHeight(0);

            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (ExecutionException e) {

                e.printStackTrace();
            }

        }


        public View getView(int position, View convertView, ViewGroup parent) {
            View rowView = convertView;
             if (rowView == null) {
                  LayoutInflater inflater = context.getLayoutInflater();
                  rowView = inflater.inflate(R.layout.list_item, null);
                  ViewHolder viewHolder = new ViewHolder();
                  viewHolder.text = (TextView) rowView.findViewById(R.id.TextView01);
                  viewHolder.image = (ImageView) rowView
                      .findViewById(R.id.ImageView01);
                  rowView.setTag(viewHolder);
                }
            return rowView;
        }
    }
4

2 に答える 2

0

あなたのコードは大丈夫です。カスタムフォントも同じように使用しました。として:

Typeface typeFace = Typeface.createFromAsset(getAssets(),"fonts/LCALLIG.TTF");          
textView.setTypeface(typeFace); 

フォント名が正しいかどうか、アセットフォルダーに正しくコピーされているかどうかを確認してください。
はいの場合は、エラーまたは logcat を表示します。

于 2012-12-30T06:00:15.680 に答える
0

私は数週間前に同じ問題を抱えていました。この「createFromAsset」メソッドでディレクトリを使用することはできないと思います。フォント ファイルを親アセット ディレクトリにコピーします。

Typeface myTypeface = Typeface.createFromAsset(getAssets(), "myFont.ttf");

あなたのlogcatは何を言っていますか?

于 2012-12-30T03:11:11.910 に答える