Today I read about Property Animation, and I got into following snippet somehow.
At first, I couldn't figure out how does LinearGradient really work, especially the part position, why when:
is used, it gives a result like above picture?!
After an hour of trial-and-error, I realized that:
- The first number 0 means where the first Color.BLACK begins
- The second one, 0.5f means 50% of the width (0 to 150), so the Color.WHITE begins at where X = 75 (relatively with the TextView). And the TextView turns from Color.BLACK(X=0) to Color.WHITE(X=75) within the part from X=0 to X=75
- Same things happen between the second one and the third one, TextView turns from Color.WHITE(X=75) to Color.BLACK(X=150) within the part from X=75 to X=150
Well, that's how the gradient is rendered as a great above picture, and if you work some more to integrate LinearGradient with Property Animation, you will get a great effect ;)
TextView tv = (TextView) rootView.findViewById(R.id.textview); tv.setText("I'm Leo"); tv.setWidth(150); tv.setBackgroundColor(Color.BLACK); LinearGradient linearGradient = new LinearGradient(0, 0, 150, 0, new int[]{ Color.BLACK, Color.WHITE, Color.BLACK }, new float[]{ 0, 0.5f, 1 }, Shader.TileMode.CLAMP); tv.getPaint().setShader(linearGradient);
At first, I couldn't figure out how does LinearGradient really work, especially the part position, why when:
new float[]{ 0, 0.5f, 1 },
is used, it gives a result like above picture?!
After an hour of trial-and-error, I realized that:
- The first number 0 means where the first Color.BLACK begins
- The second one, 0.5f means 50% of the width (0 to 150), so the Color.WHITE begins at where X = 75 (relatively with the TextView). And the TextView turns from Color.BLACK(X=0) to Color.WHITE(X=75) within the part from X=0 to X=75
- Same things happen between the second one and the third one, TextView turns from Color.WHITE(X=75) to Color.BLACK(X=150) within the part from X=75 to X=150
Well, that's how the gradient is rendered as a great above picture, and if you work some more to integrate LinearGradient with Property Animation, you will get a great effect ;)