我一直在开发壁纸应用程序,它可以获取一些壁纸(通过我选择的API),为用户提供共享功能,直接设置为壁纸(如果支持则可滚动)或编辑和设置图片。
此编辑屏幕是我遇到一些错误/问题的地方。
我需要用户能够根据自己的喜好裁剪/缩放/平移图像并将其设置为壁纸。与Nova壁纸的工作方式类似,如果裁剪选择减少,整个图像将相应地放大到该选择。所有这些都发生在我相信的单一图像视图中。
但是,就我而言,我碰巧使用了两个图像视图,一个用于裁剪,另一个用于缩放。 裁剪库:github-dot-com / edmodo / cropper /
一旦用户裁剪,第二个图像视图将填充来自裁剪器的选择位图。此imageview用于缩放或平移。 zoom / pan library:github-dot-com / jasonpolites / gesture-imageview
以下是该屏幕的布局: http://i.stack.imgur.com/wnjcP.jpg
代码:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:gesture-image="http://schemas.polites.com/android"
android:id="@+id/scrollview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:id="@+id/mylayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusableInTouchMode="true"
android:orientation="vertical"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/Button_crop"
style="@style/RoboTheme"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="25dp"
android:paddingRight="25dp"
android:text="@string/crop"
android:textColor="#33B5E5"
android:textSize="12sp" />
<ImageButton
android:id="@+id/Button_rotate_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/rotate_left" />
<ImageButton
android:id="@+id/Button_rotate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/rotate_right" />
<Button
android:id="@+id/Button_setother"
style="@style/RoboTheme"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="25dp"
android:paddingRight="25dp"
android:text="@string/setother"
android:textColor="#33B5E5"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/checkboxlayout">
<CheckBox
android:id="@+id/scrollable"
style="@style/RoboTheme"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#33B5E5"
android:textSize="12sp"
android:checked="false"
android:text="Scrollable" />
<Button
android:id="@+id/Button_setwallpaper"
style="@style/RoboTheme"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="25dp"
android:paddingRight="25dp"
android:text="@string/setwallpaper"
android:textColor="#33B5E5"
android:textSize="12sp" />
</LinearLayout>
<com.edmodo.cropper.CropImageView
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:id="@+id/CropImageView"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:adjustViewBounds="true" />
<com.polites.android.GestureImageView
android:id="@+id/croppedImageView"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:adjustViewBounds="true"
android:contentDescription="@string/croppedImageDesc"
gesture-image:max-scale="10.0"
gesture-image:min-scale="0.1"
gesture-image:strict="false" />
</LinearLayout>
</ScrollView>
然而,我想在一定程度上帮助提高布局的效率。我不需要在不同的设备中滚动或基于类似于Nova Launcher&#34; Set Wallpaper&#34;屏幕像:
http://i.stack.imgur.com/WaJRO.png
非常感谢任何帮助!
谢谢,
ARNAB
答案 0 :(得分:0)
Nova Launcher的裁剪活动基于AOSP Gallery2 https://android.googlesource.com/platform/packages/apps/Gallery2/的CropImage.java。引入所有必需的依赖项然后修复构建SDK的所有构建问题(比如他们可能在视图中使用mLeft而你必须用getLeft()替换它)。