我正在创建一个应用程序,其资源可以重复使用(因为按钮总是相同,但是镜像或旋转).我确实想要使用相同的资源,所以我不必再添加3个与原始资源完全相同但又已旋转的资源.但我也不想将代码与可以在XML中声明的内容混合,或者使用会花费处理时间的矩阵进行转换.
我在XML中声明了一个两个状态按钮.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/and_card_details_button_down_left_onclick" /> <!-- pressed -->
<item android:drawable="@drawable/and_card_details_button_down_left" /> <!-- default -->
</selector>
Run Code Online (Sandbox Code Playgroud)
我想重复使用drawable,因为它会相同但旋转90º和45º并且我将按钮分配为drawable.
<Button android:id="@+id/Details_Buttons_Top_Left_Button"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/details_menu_large_button" />
Run Code Online (Sandbox Code Playgroud)
我知道我可以用一个RotateDrawable或一个旋转它,Matrix但正如我已经解释过的那样,我不喜欢这种方法.
是否有可能直接在XML上实现这一点,或者您认为最好的方法是什么?放置所有资源但旋转,在代码中旋转它们?
---编辑--- @dmaxi的答案很棒,这是如何将它与项目列表相结合:)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<rotate
android:fromDegrees="90"
android:toDegrees="90"
android:pivotX="50%"
android:pivotY="50%"
android:drawable="@drawable/and_card_details_button_up_onclick"/>
</item>
<item>
<rotate
android:fromDegrees="90"
android:toDegrees="90"
android:pivotX="50%"
android:pivotY="50%"
android:drawable="@drawable/and_card_details_button_up_onclick"/>
</item>
</selector>
Run Code Online (Sandbox Code Playgroud) 除了针对所有RTL语言测试语言代码之外,还有办法识别RTL(从右到左)语言吗?
由于API 17+为RTL和LTR提供了多种资源,我认为应该有一种方法,至少从API 17开始.
我试图翻转和ImageView垂直,但它不会工作.
Java的:
public static void flipImageVertically(final Bitmap bmp, final ImageView imageView) {
final Matrix matrix = new Matrix();
matrix.preScale(1.0f, -1.0f);
imageView.setImageBitmap(Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true));
}
Run Code Online (Sandbox Code Playgroud)
XML:
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/red" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这ImageView根本不是在翻转.
谁知道为什么?
我在这里找到了这个矢量可绘制资源.我想要做的是翻转它,使X在另一边.
我设法在布局中执行此操作,就像在此示例中添加:
android:scaleX="-1"
到我的ImageView并且它可以工作.
现在我想直接在Vector Drawable中更改它,但是当我尝试下面的代码时它是不可见的.
account_remove.xml:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24">
<group
android:name="rotationGroup"
android:scaleX="-1" >
<path
android:fillColor="#FFFFFF"
android:pathData="M15,14C17.67,14 23,15.33 23,18V20H7V18C7,15.33 12.33,14 15,14M15,12A4,4 0 0,1 11,8A4,4 0 0,1 15,4A4,4 0 0,1 19,8A4,4 0 0,1 15,12M5,9.59L7.12,7.46L8.54,8.88L6.41,11L8.54,13.12L7.12,14.54L5,12.41L2.88,14.54L1.46,13.12L3.59,11L1.46,8.88L2.88,7.46L5,9.59Z" />
</group>
</vector>
Run Code Online (Sandbox Code Playgroud)
当我添加:
android:pivotX="10.0"
android:pivotY="10.0"
Run Code Online (Sandbox Code Playgroud)
到我的rotationGroup,它向右倾斜.
我应该将哪些值添加到我的rotationGroup以使其正常工作?
xml android drawable android-drawable android-vectordrawable
我使用了一个材质图标(ic_play_arrow_black_24dp),用vector studio导入它.
现在我希望箭头指向另一个方向,而不创建第二个向量.这可能在xml中如何?
我在两个浮动操作按钮中使用drawable,然后使用另一个浮动操作按钮.
这里编辑的是fab xml.我已经尝试过旋转和缩放,但它没有用
<android.support.design.widget.FloatingActionButton
android:id="@+id/previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|bottom"
android:layout_marginBottom="0dp"
android:layout_marginEnd="80dp"
android:layout_marginStart="0dp"
android:layout_marginTop="0dp"
android:src="@drawable/next_prev_24dp"
app:layout_anchor="@id/next"
app:layout_anchorGravity="left" />
Run Code Online (Sandbox Code Playgroud) 基本上我创建了一个不添加视频录制的简单android相机应用程序,我点击了此链接 android相机应用程序教程链接
问题是当我从前置摄像头捕获图像时,单击捕获按钮后,显示镜像的图像就像我们站在镜子前面一样。例如我有右侧箭头图像,但是当我捕获时,它会预览左侧箭头。对不起英语。
camera android android-camera android-camera-intent android-studio