2016-03-28 48 views
0

我在擴大TextViews和複選框在三星GT-N5110機器人版本4.1.2 時出現以下圖像放大後的TextView裏面有textview裏面我想擴展它,我沒有嘗試啓用縮放比例動畫開發人員選項沒有用,我也嘗試nineoldandroid.jar。ObjectAnimator pixlated TextView

enter image description here

這裏是我的內fargment代碼:

@Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     view = inflater.inflate(R.layout.test, container, false); 
     linearLayout = (LinearLayout) view.findViewById(R.id.test); 
     textView = (AutoResizeTextView) view.findViewById(R.id.text); 
     return view; 
    } 


    @Override 
     public void onStart() { 
      super.onStart(); 
    ObjectAnimator.ofFloat(linearLayout , "scaleY", 500).setDuration(500).start(); 
     ObjectAnimator.ofFloat(linearLayout , "scaleX", 500).setDuration(500).start(); 
     } 

佈局:

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


     <LinearLayout 
      android:id="@+id/test" 
      android:layout_width="30dp" 
      android:layout_height="30dp" 
      android:layout_gravity="center" 
      android:background="@drawable/prayer_background"> 

      <com.example.views.AutoResizeTextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="@string/aboutUs" 
       android:textSize="5sp" /> 

     </LinearLayout> 
    </LinearLayout> 

prayer_background:

<?xml version="1.0" encoding="utf-8"?> 

    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="oval"> 
     <corners android:radius="10dip" /> 
     <stroke 
      android:width="5dip" 
      android:color="@color/mainColor" /> 
     <solid android:color="@color/mainColor" /> 
    </shape> 

更新:

我曾嘗試AutoResizeText和ScaleableTextView提到here: 我得到以下結果: enter image description here

+0

你應該讓你的quesition更乾淨。 –

+0

你可以告訴我如何:) – Muhammad

+0

你想實現什麼? –

回答

0
private int dp2px(float dp){ 
      return (int) (dp * activity.getResources().getDisplayMetrics().density + 0.5f); 
     } 
     private doScale(){ 
      final LinearLayout linearLayout = (LinearLayout) view.findViewById(R.id.test); 
      final TextView textView = (TextView) linearLayout.findViewById(R.id.tv_main); 
      final int oldSize = dp2px(30); 
      final float scale = 2f; 
      final float textSizeOld = textView.getTextSize(); 
      ValueAnimator valueAnimatorLarge = ValueAnimator.ofInt(1,100); 
      valueAnimatorLarge.setDuration(500); 
      valueAnimatorLarge.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 

       @Override 
       public void onAnimationUpdate(ValueAnimator animation) { 
        ViewGroup.LayoutParams layoutParams = linearLayout.getLayoutParams(); 
        float currentScale = (int)animation.getAnimatedValue()/100f; 
        layoutParams.width = (int) (scale*oldSize*currentScale); 
        layoutParams.height = layoutParams.width; 
        linearLayout.setLayoutParams(layoutParams); 
        textView.setTextSize(scale*textSizeOld*currentScale); 
       } 
      }); 
      valueAnimatorLarge.start(); 
     } 
+0

float currentScale =(int)animation.getAnimatedValue()/ 100f; 從float到int的轉換異常 – Muhammad