第一步:
private ImageView
iv_change_text_size_; //控制缩小图标
private ImageView
iv_change_text_size; //控制放大的图标
private float size_ =
60f; //初始字体的大小(此处觉得屏幕适配是时候学习了)
private int pos; // 获取viewPager的当前位置的变量,防止改变字体大小重新newadapter时候造成的重回第一个view页面
第二部:
在第一次newadapter时候用setOnPageChangeListener滚动监听
pos = arg0
;将当前位置记录并赋值给全局变量,并将当前size_传递过去
adapter =
new AnswerQuedtionAdapter(AnswerQuestionActivity.
this, viewList, res, size_)
;
viewPager.setAdapter(
adapter)
;
viewPager.setOnPageChangeListener(
new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(
int arg0
, float arg1
, int arg2) {
}
@Override
public void onPageSelected(
int arg0) {
pos = arg0
;
}
@Override
public void onPageScrollStateChanged(
int arg0) {
}
})
;
viewPager.setCurrentItem(
0)
;
第三步:放大点击事件,和缩小的点击事件
iv_change_text_size.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
// float scle = getResources().getDisplayMetrics().scaledDensity;
// float size = tv_question.getTextSize();
if (
size_ <=
80){
size_ +=
2; // 单次点击使得字体加2 // 重新new一次adapter,将新的size_传过去
adapter =
new AnswerQuedtionAdapter(AnswerQuestionActivity.
this, viewList, res , size_)
;
viewPager.setAdapter(
adapter)
;
L.
d(
"pos",pos+
">>>>>>>>>>>>>>>>>>>>>>>>")
; // 设置viewPager到当前页面
viewPager.setCurrentItem(
pos)
;
}
// 保存设置的值
SPUtils.
put(AnswerQuestionActivity.
this, "size_", size_)
;
}
})
; // 缩小点击事件iv_change_text_size_.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
if (
size_ >=
60){
size_ -=
2;
adapter =
new AnswerQuedtionAdapter(AnswerQuestionActivity.
this, viewList, res , size_)
;
viewPager.setAdapter(
adapter)
;
viewPager.setCurrentItem(
pos)
;
}
SPUtils.
put(AnswerQuestionActivity.
this, "size_", size_)
;
}
})
;
第四步:进入adapter中,获取传递过来地size_
@Override
public Object
instantiateItem(
final ViewGroup container
, final int position) {// (据说这是用来获取屏幕适配相关的)
float scle =
context.getResources().getDisplayMetrics().
scaledDensity;
final ViewHolder holder =
new ViewHolder()
;
converView =
viewList.get(position)
;
holder.
tv_question = (TextView)
converView.findViewById(R.id.
tv_question)
;// 设置字体大小
holder.
tv_question.setTextSize(
size/scle)
;
转载请注明原文地址: https://ju.6miu.com/read-665677.html