放大缩小TextView

时间:2013-10-02 11:09:30

标签: android android-listview

我的列表视图包含带文字的文字视图。我在点击时实现了一个。增加listview的所有textviews字体。但是当我运行我的样本时,只更改了一行或两行字体,另一种字体保持默认状态。我的问题是如何在按钮点击时一次增加所有字体。

我的listadapter如下:

public class CommetaireAdapter extends BaseAdapter {

    private SampleListFragment activity;
    private ArrayList<Commentaire> data;
    private static LayoutInflater inflater = null;
    public static int selected_position_from_chapter=0;
    public ImageLoader imageLoader; 

    ViewHolder holder;
    static String src;

    public CommetaireAdapter(SampleListFragment context, ArrayList<Commentaire> d) {

        activity = context;
        data = d;
        inflater = (LayoutInflater) ((activity.getActivity()))
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        imageLoader=new ImageLoader(activity.getActivity());


    }

    public int getCount() {
        return data.toArray().length;

    }

    public Object getItem(int position) {

        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public static class ViewHolder {

        public TextView txTime;

    }

    public View getView(int position, View convertView, ViewGroup parent) {
        View vi = convertView;

        //row
        if (convertView == null) {

            if (position % 2 == 0) {
                vi = inflater.inflate(R.layout.comment_row, null);

            }else {

                vi = inflater.inflate(R.layout.comment_row_odd, null);

            }

            holder = new ViewHolder();
            holder.txTime = (TextView) vi.findViewById(R.id.txTime);

            vi.setTag(holder);

        } else
            holder = (ViewHolder) vi.getTag();


        holder.txTime.setText(data.get(position).getDate());


        return vi;

    }

在我的listview类中按下缩小按钮,如下所示:

btZoomOut.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                CommetaireAdapter.ViewHolder.txTime.setTextSize(TypedValue.COMPLEX_UNIT_SP,10);
                efficientadapter.notifyDataSetChanged();

            }

        });

1 个答案:

答案 0 :(得分:1)

我也遇到过这种类型的要求,但区别在于它是Tab。 我通过使用下面的代码解决了它。希望这能帮助您了解您的需求。

for(int i=0;i<tabHost.getTabWidget().getChildCount();i++){
            TextView textTab=(TextView)tabHost.getTabWidget().getChildAt(i).findViewById(android.R.id.title);
            textTab.setTextSize(TypedValue.COMPLEX_UNIT_DIP,10f);
    }

这不是我提供的查询的确切解决方案,但您的问题与我所面临的问题类似。 所以希望,这将有助于您为您的查询获得这种想法。 :)

最好的运气!!!!

**** 解决方案(已编辑) * * * **

 for(int i=0;i<yourListviewID.getChildCount();i++){
                    TextView textTab=(TextView)yourListviewID.getChildAt(i).findViewById(android.R.id.title);
// if your control is not textview, use your corretct one
                    textTab.setTextSize(TypedValue.COMPLEX_UNIT_DIP,10f);
        }

让我知道是否还有问题。 :)