9パッチ画像をフォローしてドロップシャドウ効果を作ります。9パッチドロップシャドーテクニックは画像表示では機能しますが、カメラプレビューでは機能しません
これは、次の画像表示のためにかなりよく働きます。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#FFFFFF"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center" >
<ImageView
android:id="@+id/image_test"
android:background="@drawable/dropshadow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/pic1"
/>
</LinearLayout>
私は完璧なシャドウ効果を得ることができます。画像右/下に1ピクセル幅の赤線があることに注意してください。私は故意に9ピクセルの画像から元の画像を隠すピクセルがないことを証明するために、画像の右/下に1ピクセル幅の赤い線を置きます。しかし
、私はカメラのプレビュービュー上の正確な同じ技術を適用しようとすると、物事が複雑化。私はAPIのわずかな変更を行います。com.example.android.apis.graphics.CameraActivity
以下の変更を行ってGUIビューを変更します。
class Preview extends ViewGroup implements SurfaceHolder.Callback {
// ...
Preview(Context context) {
// ...
mSurfaceView.setBackgroundDrawable(getResources().getDrawable(drawable.dropshadow));
this.setBackgroundColor(Color.WHITE);
// ...
}
}
次の結果が得られます。影の効果は、画像の右端と下端の終わりの前に現れ始めることに注意してください。エッジの端に達するまでの距離は9ピクセルです。
私は両方のプロジェクトのための正しいイメージファイル名dropshadow.9.png
を持っていますかなり確信しています。しかし、後者が期待どおりに機能しない理由がわかりません。