这是我想要旋转的Android ImageButton。
它会旋转,但正如您从屏幕截图中看到的那样,它的一部分会在旋转过程中变为背景/不可见。如何确保ImageButton在整个旋转期间保持完全可见?
这是活动代码:
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageButton imgbt = (ImageButton)findViewById(R.id.mybutton);
RotateAnimation ra =new RotateAnimation(0, 360);
ra.setFillAfter(true);
ra.setDuration(2000);
imgbt.startAnimation(ra);
}
}
和XML:
<LinearLayout
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical" >
<ImageButton
android:id="@+id/mybutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/mybutton" />
</LinearLayout>
答案 0 :(得分:2)
在LinearLayout中,更改此内容:
android:layout_height="wrap_content"
到此:
android:layout_height="match_parent"
因此,您将确保容器足够大以完全显示图像按钮,即使它是垂直的。
答案 1 :(得分:1)
将您的LinearLayout
身高和宽度更改为fill_parent
,如下所示:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical" >
答案 2 :(得分:1)
您可以使用:
imgbt.bringToFront();
答案 3 :(得分:1)
将 match_parent 设置为 LinearLayout 高度。
如果您没有使用体重,则不需要包含它。所以改变
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >
答案 4 :(得分:0)
将线性布局的宽度和高度参数更改为fill_parent会导致使用代码:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="horizontal" >
<ImageButton
android:layout_gravity="center"
android:id="@+id/mybutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/mybutton"
/>