9

私のデザイナーは Illustrator で作業し、スクリプトを使用して mdpi、hdpi、xhdpi (および iOS res) のすべてのリソースをエクスポートします。ボタンと streachables の画像については、9 パッチを生成するための最適なソリューションを探しています。

今までは SDK の draw9patch ソフトを使って 9patch を生成していました。それはまだ機能しますが、真剣に、より良い方法があることを願っています. 私のプロジェクトに 20 個のボタンがあり、3 つまたは 4 つの状態があり、3 つの密度タイプがある場合、このソリューションに必要な時間は想像できません。

解決策は、Asset Studio ツールを使用することですが、xhdpi ファイルを提供したくないため、他の密度フォルダーの画像が不十分に生成されます。私の目標は、密度ごとにピクセル パーフェクトな 9 パッチを取得することです。

また、伸縮可能な画像に SVG ファイルを使用しようとしましたが、Asset Studio はそれらを受け入れないようです。

デザイナーが Illustrator で直接 9patch を作成しようとすると、スクリプトを使用してエクスポートできません。1 ピクセルの線もスケーリングされ、1 ピクセルを測定しなくなるからです。

では、画質を落とさず、10 時間も費やさずに 9 パッチを作成する解決策はありますか?

4

5 に答える 5

2

私の解決策は、draw9patch の学習に何時間も費やすことです。その後、ボタンを作成するのに何時間もかかりません。私はこれを自分で行い、苦労しましたが、draw9patch はそれを行うための非常に簡単な方法であり、各画像 (ボタン用) には 15 秒もかかりません。draw9patch 画像は、実際に 1 回実行するだけでよく、それに応じて伸縮するため、すべての密度で機能するため、優れているはずです。画像にテキストがある場合は、別の問題があります。単純な stings.xml でアプリケーションを変換できなくなるため、これは嫌われます。

私の解決策:

1. draw9patch で素晴らしいものを手に入れよう

2.テキストに画像を使用しないでください。draw9patch を使用して、ボタンのテキストを正しく中央揃えにすることができます。これにより、アプリをさまざまな言語で使用できるようになります。ダウンロード/販売を簡単に後押しできるもの。これは重要です。アプリにもう 1 つの言語 (たとえば、スペイン語) をターゲットにする機能を与えたとしても、そのターゲット オーディエンスを本当に満足させるからです。

于 2012-07-23T22:09:36.600 に答える
2

これは、時間を大幅に節約できる優れた 9パッチエディターです。最大の特徴は「コピー&ペースト」機能で、異なる状態の画像に同じ伸縮可能領域を非常に高速に提供できます。

画面サイズによって大きな違いが生じる可能性があるため、さまざまな画像サイズで動作できるエディターはないと思います。

于 2012-07-24T06:55:51.557 に答える
0

画像エディタ(Photoshop / Paint .NET)でパッチを適用する各画像を開き、キャンバスのサイズを両方の次元で2増やすことで、9パッチの生成を圧縮します。

これを実行すると、ストレッチラインとパディングラインをすばやく描画できます。何百もの画像に対して実行する場合は少し面倒ですが、プロジェクトごとに1回だけ実行する必要があります。こんなに時間がかかる9パッチたくさんあるプロジェクトは想像もつきません...

プロセスを本当に合理化したい場合は、9patchからパディングインジケーターを削除し、style属性を使用してビューに追加できます...

私のデザイナーがIllustratorで直接9patchを作成しようとすると、1 pxの線も拡大縮小され、1pxが測定されなくなるため、スクリプトを使用してエクスポートすることはできません。

この行は私を心配しています-mdpiイメージをhdpiにスケールアップするべきではありません、それらは何の意味もありません。使用可能なmdpiイメージしかない場合は、それを使用して実行時に自動的にスケーリングします。

于 2012-07-17T08:55:47.517 に答える
0

では、画質を落とさず、10 時間も費やさずに 9 パッチを作成する解決策はありますか?

ステップ #1: お気に入りのデスクトップ プログラミング言語用の任意の数の PNG 読み取りライブラリを使用して、1 つの PNG から 9 パッチ情報を取得し、別の PNG に適用するスクリプトを作成します。

ステップ #2: draw9patch1 つの密度に対して 1 つの画像に適切なルールを適用するために使用します。

ステップ #3: スクリプトを使用して、これらのルールを同じ密度の状態の他のバリエーションに適用します。

ステップ #4: 他の密度についてステップ 2 と 3 を繰り返します。

于 2012-07-24T13:38:50.037 に答える
0

主にボタンやその他のビューの背景を描画するために 9 つのパッチを使用しています。それらのほとんどは、ある種の 2 ピクセルのセパレーターを使用した単色の背景であり、一部はセパレーターを使用したグラデーションです。私はそれらを res\drawable-nodpi フォルダーに入れています。これは、アンドロイドにその内容のスケーリングを実行しないように指示する特別なフォルダーです。

これまでのところ、まったく問題なく期待どおりの結果が得られています。私の2ピクセルセパレーターは、ldpiからhdpi解像度までのいくつかのデバイスで2つの実際のデバイスピクセル(密度ピクセルではない)であり、これが私が望むものです。

お役に立てれば...

于 2012-07-18T01:12:08.077 に答える