我使用以下代码设置ImageView的alpha值(这应该与所有设备兼容,甚至是API 11之前的版本)
AlphaAnimation alpha = new AlphaAnimation(0.85F, 0.85F);
alpha.setDuration(0); // Make animation instant
alpha.setFillAfter(true); // Tell it to persist after the animation ends
ImageView view = (ImageView) findViewById(R.id.transparentBackground);
view.startAnimation(alpha);
但是,当我在运行姜饼及其下方的设备上打开应用程序时,imageView是完全透明的,但在运行蜂窝或更高版本的设备上,alpha值设置为.85并且imageView显示完美。
如何在gingerBread上实现这一点?
答案 0 :(得分:2)
一种简单的方法是使用NineOldAndroids项目将Honeycomb动画API移植回旧版本,包括AlphaAnimation。请参阅http://nineoldandroids.com/。
所以,使用ObjectAnimator会是这样的:
ObjectAnimator.ofFloat(imageView, "alpha", .85f).start();
答案 1 :(得分:0)
你有一个功能(由于新视图处理透明度的通用方法已被弃用,但可以在Android 2.x上安全使用):
myImageView.setAlpha(128); // range [0, 255]
您必须实现自定义动画。这可以使用处理程序完成,例如:
Handler animationHandler = new Handler() {
public void handleMessage(Message msg) {
int currentAlpha = msg.arg1;
int targetAlpha = msg.arg2;
if (currentAlpha==targetAlpha) return;
else {
if (currentAlpha<targetAlpha) --currentAlpha;
else ++currentAlpha;
imageView.setAlpha(currentAlpha);
sendMessageDelayed(obtainMessage(0, currentAlpha, targetAlpha), 10);
}
}
}
// Show imageview
animationHandler.sendMessage(animationHandler.obtainMessage(0, currentAlpha, 255));
// Hide imageview
animationHandler.sendMessage(animationHandler.obtainMessage(0, currentAlpha, 0));
答案 2 :(得分:0)
好的,让我们创建一个自定义的imageview,通过覆盖onDraw来解决问题:)
AlphaImageView.java
package com.example.shareintent;
import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.widget.ImageView;
public class AlphaImageView extends ImageView {
public AlphaImageView(Context context) {
super(context);
}
public AlphaImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public AlphaImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void onDraw(Canvas canvas){
canvas.saveLayerAlpha(0, 0, canvas.getWidth(), canvas.getHeight(), 0x66, Canvas.HAS_ALPHA_LAYER_SAVE_FLAG);
super.onDraw(canvas);
}
}
您的活动xml
<com.example.shareintent.AlphaImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="52dp"
android:layout_marginTop="50dp"
android:src="@drawable/ic_launcher" />